【问题标题】:Laravel 8 not validating pdf fileLaravel 8 不验证 pdf 文件
【发布时间】:2021-01-19 20:13:23
【问题描述】:

我使用的是 laravel 版本 8,我想验证上传的文件应该是 pdf 文件,我使用的是下面的代码

$request->validate([
      'cv'=> 'required|mimes:pdf|max:2048'
]);

但问题是即使我正在上传 pdf 文件,我仍然收到“CV 必须是类型为:pdf 的文件”的错误。

通过在表单标签中添加 enctype="multipart/form-data" 属性解决

【问题讨论】:

    标签: laravel


    【解决方案1】:

    你可以使用mimetypes验证:

    $request->validate([
          'cv'=> 'required|mimetypes:application/pdf|max:10000'
    ]);
    

    【讨论】:

    • 我仍然得到这个“简历必须是类型的文件:application/pdf。”
    • 您确定该文件的扩展名为 .pdf 吗?
    • 是的,即使我尝试添加其他扩展,例如 jpeg,也只是为了测试即使这些扩展没有被验证
    • 通过在表单标签中添加enctype="multipart/form-data"属性解决
    【解决方案2】:

    5.2 之前

    $rules  = [
        "file" => "required|mimes:pdf|max:10000"
    ]
    

    来自 laravel 文档:

    即使您只需要指定扩展名,此规则实际上通过读取文件的内容并猜测其 MIME 类型来验证文件的 MIME 类型。

    5.2 更新后:

    从 Laravel 5.2 开始,您可以根据完整的 MIME 类型验证文件上传,新的验证规则称为:mimetypes。

    $rules  = [
        "file" => "required|mimetypes:application/pdf|max:10000"
    ]
    

    【讨论】:

    • 现在出现“简历必须是类型的文件:application/pdf。”
    • 在表单标签中添加enctype="multipart/form-data"属性解决
    猜你喜欢
    • 2021-04-17
    • 1970-01-01
    • 2021-02-15
    • 2016-06-12
    • 2022-01-19
    • 2022-08-05
    • 2021-09-25
    • 2021-03-24
    • 2021-09-08
    相关资源
    最近更新 更多