Validation 验证.csv文件时出现Laravel MIME问题

Validation 验证.csv文件时出现Laravel MIME问题,validation,laravel-5,mime,Validation,Laravel 5,Mime,我读过几篇关于使用laravel上传文件时检查文件扩展名的文章 我也有同样的问题,即使花了一个小时去做那些愚蠢的事情,我也没有提交解决方案 这是我的验证规则 公共功能规则() { 返回[ “工作表”=>“必需”, '文件'=>'mimes:csv', ]; } 然而,需要的是工作文件,但是模拟文件 我尝试了其他几种方法,比如: 返回[ '工作表'=>['必需','模拟:csv'] ] 返回[ '工作表'=>['必需','模拟:文本/csv'] ] 返回[ “工作表”=>“必需”| m

我读过几篇关于使用laravel上传文件时检查文件扩展名的文章

我也有同样的问题,即使花了一个小时去做那些愚蠢的事情,我也没有提交解决方案

这是我的验证规则

公共功能规则()
{
返回[
“工作表”=>“必需”,
'文件'=>'mimes:csv',
];
} 
然而,需要的是工作文件,但是模拟文件

我尝试了其他几种方法,比如:

返回[
'工作表'=>['必需','模拟:csv']
]

返回[
'工作表'=>['必需','模拟:文本/csv']
]

返回[
“工作表”=>“必需”| mimes:text/csv”
];

返回[
“工作表”=>“必需”| mimes:csv”
];

返回[
“工作表”=>“必需”,
需要“扩展”=>“输入:csv”
];
上面并没有一行正在工作,有时表示无效文件有时会通过验证

我怀疑文件无效,然后我从微软网站下载了新的示例文件。这根本不是问题所在

有人能帮我吗

谢谢

惊讶

它为CSV获取了
text/plain
mime,这就是问题的原因

为了解决这个问题,我找到了哪个扩展负责
text/plain
,找到了txt,所以我更新了我的规则:

返回[
“工作表”=>“必需”| mimes:csv,txt”
];

以下是我用于更完整的csv验证的几种类型,希望对将来的使用有所帮助

        return [
            'sheet' => 'required|mimetypes:text/csv,text/plain,application/csv,text/comma-separated-values,text/anytext,application/octet-stream,application/txt'
        ];

我面临着同样的问题,即使它是旧的,我希望这将有助于其他人。 要修复它,您必须知道从您的请求中获得了什么mime,要找到它,请使用以下代码行:

dd($request->file('document')->getMimeType(),$request->file('document')->getClientOriginalExtension() );
所以在我的例子中,我上传的文件是CSV,但我有一个txt文件扩展名。因此,我通过在请求验证中添加txt来解决此问题,就像本文前面的答案一样:

return [
    'sheet' => "required|mimes:csv,txt",
];

试试这个:application/csv。运气不好!我贴出了答案。这对我有用!我添加了一个.sql文件并应用了您的验证规则,但它仍然通过。但为什么会发生这种情况,当我转储文件变量时,它会显示
mimeType:“text/csv”
此答案不正确。因为用户也可以上传txt文件!