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

Laravel Blade表单设置enctype="multipart/form-data"上传文件提示连接重置如何解决?

Laravel文件上传触发"The connection was reset"错误排查方案

1. 检查Nginx客户端上传大小限制

这是该场景下最常见的触发原因,Nginx默认限制单请求最大大小为1M,超出后会直接断开连接。
修改步骤:

  • 打开Nginx主配置文件:/etc/nginx/nginx.conf,或对应站点的配置文件(一般在/etc/nginx/sites-available/目录下)
  • 在http块或对应站点的server块中添加配置:client_max_body_size 20M;,数值可根据实际需要的最大上传大小调整
  • 执行nginx -t验证配置语法无误后,执行systemctl reload nginx重载配置生效

2. 调整PHP上传相关配置

Nginx放行了请求后,还需要PHP配置允许对应大小的文件上传:

  • 打开PHP7.4-fpm的配置文件:/etc/php/7.4/fpm/php.ini
  • 修改以下参数为适配的数值:
    • upload_max_filesize = 20M:单个上传文件的最大大小
    • post_max_size = 25M:整个POST请求的最大大小,需要大于upload_max_filesize以容纳表单其他字段的内容
    • max_execution_time = 60:PHP脚本最大执行时长,大文件上传需要更长的执行时间
    • max_input_time = 60:PHP解析请求数据的最大时长
    • memory_limit = 128M:PHP脚本允许占用的最大内存,避免大文件上传时内存不足
  • 修改完成后执行systemctl restart php7.4-fpm重启PHP服务生效

3. 验证Laravel存储目录权限

Laravel上传的文件默认会写入storage目录,需要确认该目录的权限对PHP运行用户开放:

  • Ubuntu环境下PHP7.4-fpm默认运行用户为www-data,执行命令修改目录权限:
    chown -R www-data:www-data /你的Laravel项目根目录路径/storage
    chmod -R 755 /你的Laravel项目根目录路径/storage
    
  • 权限修改后可执行php artisan config:clear清理Laravel配置缓存避免异常

4. 调整超时配置(大文件上传场景适用)

如果上传的文件超过10M,还需要调整Nginx和PHP的超时配置避免连接提前中断:

  • 在对应站点的Nginx server块中添加以下配置:
    fastcgi_connect_timeout 60s;
    fastcgi_send_timeout 60s;
    fastcgi_read_timeout 60s;
    
  • 重载Nginx配置生效

5. 代码层面排查

  • 确认Blade表单已经正确添加enctype="multipart/form-data"属性
  • 临时注释控制器中的上传处理逻辑,直接返回空响应,测试是否还会出现连接重置:如果不再出现,说明上传逻辑存在异常,可查看storage/logs/laravel.log中的报错信息定位问题
  • 测试小体积文件(比如<1M的图片)是否能正常上传,如果小文件正常大文件异常,基本可以确定是前面的大小限制或超时配置问题

6. 其他排查方向

  • 执行df -h检查服务器磁盘剩余空间是否充足
  • 检查服务器防火墙、WAF等安全策略是否拦截了大文件上传请求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 08:48:04