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

Laravel 10上传PDF文件遇验证错误:已传PDF却被判定非PDF

Laravel 10 PDF上传验证失败的解决办法

常见原因及解决方案

  • 改用mimetypes规则替代mimes
    Laravel的mimes:pdf仅通过文件扩展名验证,而mimetypes:application/pdf会检测文件实际的MIME类型,准确性更高。修改验证规则:

    'your_file_field' => 'required|file|mimetypes:application/pdf',
    

    也可同时结合两种规则,兼顾扩展名与实际MIME类型:

    'your_file_field' => 'required|file|mimes:pdf|mimetypes:application/pdf',
    
  • 检查表单enctype属性
    确保上传表单添加了enctype="multipart/form-data",否则文件无法正确上传,验证必然失败:

    <form method="POST" action="/upload" enctype="multipart/form-data">
        <!-- 表单内容 -->
    </form>
    
  • 手动验证文件头
    若以上方法无效,可手动读取文件头判断是否为PDF(PDF文件头固定为%PDF-):

    $file = $request->file('your_file_field');
    $fileHeader = file_get_contents($file->getRealPath(), false, null, 0, 5);
    if ($fileHeader !== '%PDF-') {
        return back()->withErrors(['your_file_field' => '请上传有效的PDF文件']);
    }
    
  • 检查服务器MIME配置
    部分服务器的mime.types文件未正确映射PDF的MIME类型,可联系管理员确认application/pdf是否与.pdf扩展名关联。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 08:07:34