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

Laravel Herd环境中文件上传失败问题求助

Laravel Herd环境下文件上传失效排查方案
  • 检查存储目录权限

    1. 确认storage/app/public/logos目录存在,不存在则执行:mkdir -p storage/app/public/logos
    2. 设置目录权限:chmod -R 755 storage/(本地开发可放宽为chmod -R 775 storage/,生产环境避免使用777)
    3. 确保目录所有者与Web服务器运行用户一致(Herd默认使用当前系统用户,一般无需额外调整)
  • 验证文件系统配置

    1. 打开config/filesystems.php,确认public磁盘配置正确:
      'public' => [
          'driver' => 'local',
          'root' => storage_path('app/public'),
          'url' => env('APP_URL').'/storage',
          'visibility' => 'public',
      ],
      
    2. 重新生成存储软链接:php artisan storage:link,确保public/storage指向storage/app/public
  • 排查请求与验证问题

    1. 检查表单是否添加了enctype="multipart/form-data"属性,没有的话文件无法被后端接收
    2. 验证规则中的max:255限制的是255KB,若需更大容量,改为max:255MB(Laravel 9+支持单位),确认上传文件未超出限制
  • 获取详细错误信息

    1. 在控制器中捕获异常打印具体原因:
      try {
          $path = $request->file('logo')->store('logos', 'public');
      } catch (\Exception $e) {
          dd($e->getMessage());
      }
      
    2. 查看storage/logs/laravel.log日志文件,里面会记录上传失败的具体细节(如磁盘空间不足、文件类型不匹配等)
  • Herd环境专属检查

    1. 通过phpinfo()查看PHP配置中的upload_max_filesize和post_max_size参数,确保数值足够大,不足则修改Herd对应的php.ini文件
    2. 确认系统临时目录(如/tmp)具备读写权限,Herd依赖该目录处理上传文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 06:54:59