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