Laravel 5.1 验证在正确的 MIME/扩展上失败


Laravel 5.1 Validation failing on correct mime/extension

我使用请求类进行验证。我有一个请求类,里面有这段代码:

public function rules()
{
    $rules = [
        'attachment'  => 'mimes:png,jpg,gif'
    ];
}

在控制器中执行$request->file('attachment')->getClientMimeType()会返回image/png

然而,每当我尝试发送 png 文件时,我仍然会收到验证错误:"附件必须是文件类型:png、jpg、gif。

我正在使用一个名为 Paw 的 rest 客户端通过多部分表单将文件发送到后端

我错过了一步吗?

编辑:我不能使用image作为验证规则,因为我最终想开始接受pdf/doc和其他格式(顺便说一句image失败)。到目前为止,PDF和doc也未能通过验证。

根据 W3Schools 的说法,当您上传文件时,您必须提及multipart/form-data,因此不会对任何字符进行编码,这可能会导致验证失败。

我知道

这个线程很旧,但这可能有助于其他可能偶然发现相同问题的人。顺便说一下,我使用"附件[]"作为输入名称。我使用它工作:

$this->validate(request(), [
        'attachments.*' => 'required|mimes:jpeg,png,pdf'
]);

使用点(.)星号解决了我的问题。

我也遇到了这个问题,但没有任何效果。 因为代码在本地运行良好,并且在我的 Ubuntu 服务器上在线运行失败。对我有用的是删除 laravel 验证并使用正常的 php 验证。有时,简单就是有效的。在此处输入图像描述