我使用请求类进行验证。我有一个请求类,其中包含这段代码:
public function rules()
{
$rules = [
'attachment' => 'mimes:png,jpg,gif'
];
}
在我的控制器中执行$request->file('attachment')->getClientMimeType()
会返回image/png
然而,每当我尝试发送png文件时,我仍然会收到验证错误:"附件必须是以下类型的文件:png,jpg,gif。"
我使用名为Paw的休息客户端通过Multipart form
将文件发送到后端我错过了一步吗?
编辑:我不能使用image
作为验证规则,因为我最终想要开始接受pdf / doc和其他格式(image
失败btw)。到目前为止,PDF和doc都未通过验证。
答案 0 :(得分:2)
我知道这个帖子已经老了,但这可能会帮助那些可能会遇到同样问题的人。我顺便使用“附件[]”作为输入名称。我用它来解决这个问题:
$this->validate(request(), [
'attachments.*' => 'required|mimes:jpeg,png,pdf'
]);
使用点(。)星号解决了我的问题。
答案 1 :(得分:1)
根据W3Schools上传文件时,您必须提及multipart/form-data
,因此不会对任何字符进行编码,这可能会导致验证失败。
答案 2 :(得分:0)
我也遇到了这个问题,对我没有任何帮助。原因是代码在本地运行良好,并且在我的ubuntu服务器上在线失败。对我有用的是删除laravel验证并使用常规的php验证。有时候,简单才是有效的方法。enter image description here