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

Laravel 5.8 image验证仅接受png 上传jpg/jpeg等格式报错如何解决

解决方案
  • 问题原因:Laravel 5.8的image验证规则底层依赖PHP的fileinfo扩展做文件类型识别,如果服务器未开启该扩展、或扩展配置异常,会导致无法正确识别jpg、jpeg等常见图片格式,抛出格式错误。
  • 解决方案1(优先推荐):
    先确认服务器PHP环境已开启fileinfo扩展,开启后原生image规则默认支持jpeg、png、gif、bmp、svg、webp等主流图片格式,无需额外修改验证规则。
  • 解决方案2(兼容性更高):
    直接显式指定允许的图片后缀,不依赖fileinfo的自动识别,修改控制器中的验证规则即可,调整后的代码如下:
    public function store() {
          $data = request()->validate([
              'caption' => 'required',
              // 按需添加允许的图片后缀,max规则可选,用来限制上传文件大小,此处2048代表2M
              'image' => 'required|mimes:jpeg,png,jpg,gif,webp|max:2048'
          ]);
          Post::create($data); 
    }
    
  • 排查小技巧:如果调整后仍然报错,可以在控制器中先打印上传文件的识别结果,确认MIME类型是否符合预期:
    dd(request()->file('image')->getMimeType());
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 19:09:01