Laravel 5.1验证失败正确的mime /扩展

时间:2016-01-23 23:20:31

标签: php validation laravel-5 laravel-5.1

我使用请求类进行验证。我有一个请求类,其中包含这段代码:

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都未通过验证。

3 个答案:

答案 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