You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel Jetstream(Livewire栈)无法上传2MB以上头像问题求助

Laravel Jetstream+Livewire 大文件头像上传失败解决办法

核心原因

Livewire默认自带2MB的文件上传大小限制,超过该值时会在前端直接拦截请求,这就是选择大文件后立刻弹出提示、未发送请求的根本原因,和你怀疑的$refs.photo.click()函数无关。

解决步骤

  • 修改Livewire配置文件限制
    打开config/livewire.php,找到max_file_size配置项,将其值调整为你需要的大小(单位为KB),比如设置为10MB:

    'max_file_size' => 10240,
    
  • 确认前端文件输入绑定
    检查update-information-form.blade.php中的隐藏文件输入字段,确保wire:model绑定正确,示例如下:

    <input type="file" wire:model="photo" x-ref="photo" class="hidden" accept="image/jpg,image/jpeg,image/png" />
    

    无需修改$refs.photo.click()的触发逻辑,该按钮仅用于唤起文件选择器,和上传限制无关。

  • 验证PHP配置生效
    重启你的Web服务(Apache/Nginx)和PHP-FPM,确保php.ini中的upload_max_filesize和post_max_size配置已生效。可以通过创建临时文件输出phpinfo()查看当前配置值。

  • 确认Fortify验证规则
    你已在app/Actions/Fortify/UpdateUserProfileInformation.php中设置了'photo' => ['nullable', 'mimes:jpg,jpeg,png', 'max:10240'],该规则会在后端对文件进行二次验证,保持当前配置即可。

内容的提问来源于stack exchange,提问作者Patrick4502

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 22:28:16