MIME类型验证在Laravel 5.7中不起作用

时间:2019-11-11 16:39:16

标签: laravel laravel-5.7

我想验证一个.pfx文件,但是它一直都失败。

我尝试了以下代码:

  $validacoes =  [
        'certificado' => 'mimetypes:application/x-pkcs12'
    ];

但它不起作用。

如果我愿意

dd($request->file('certificado')->getMimeType())

我得到:application / x-pkcs12。

怎么了?

对于图片,它确实起作用:image / jpg,image / png等

3 个答案:

答案 0 :(得分:0)

根据the docs,这应该是这样:

'certificado' => 'mimes:p12,pfx'

答案 1 :(得分:0)

尝试

$validacoes =  [
        'certificado' => 'mimes:application/x-pkcs12'
    ];

答案 2 :(得分:0)

我有完全相同的问题。

我的文件:

"certificateFile" => UploadedFile {#5824
    -test: false
    -originalName: "file.pfx"
    -mimeType: "application/x-pkcs12"
    -error: 0
    #hashName: null

我的验证规则:

public function rules()
    {
        return [
            'certificateFile' => 'required|mimetypes:application/x-pkcs12',
            'certificatePassword' => 'required'
        ];
    }

有创意吗?

编辑:好的,在另一个可能回答我们问题的问题(Laravel 5 Mime validation)中找到了答案。

在此注释(https://stackoverflow.com/a/30023227/2796516中,解释了Laravel使用guessExtension来验证我们的文件。并检查所述扩展的源代码,我们发现:

'application/x-pkcs12' => 'p12',

这可能意味着它仅接受带有p12扩展名的证书文件,而pfx无法使用。

相关问题