【问题标题】:Laravel file validation is not allowing anything throughLaravel 文件验证不允许任何东西通过
【发布时间】:2019-11-14 12:31:36
【问题描述】:

这里令人沮丧:我正在验证我的 Laravel 应用程序中的文件上传,这是我抛出错误的行(我从 StackOverflow 复制粘贴了这个并仔细检查了它在 Laravel 文档中是否正确):

'video_file' => 'mimetypes:video/avi,video/mpeg,video/quicktime'

现在,您可能在想,“好的,您要上传其中一种类型吗?您确定吗?”。

是的。

我关闭了验证,上传了相同的视频文件,并运行了这段代码来检查 MIME 类型是什么:

$files = $request->file('video_file');
foreach($files as $file) {
   file_get_contents($file);
   return $file->getMimeType();
}

想知道它返回了什么?

video/quicktime

那么,我应该如何验证某人正在上传视频文件?老实说,在这一点上,我真的不需要验证每种视频类型,我只需要确保它是 A VIDEO。不管是 .mov、.mp4、.avi 等等。

请记住,这是文件上传的“多个”输入,所以虽然这可能与它有关,但我不这么认为,因为我把它拿掉了,但它仍然没有通过。

有什么想法吗?

【问题讨论】:

    标签: php laravel laravel-validation


    【解决方案1】:

    在验证数组时,最好使用this

    例如:

    'video_files' => 'array',
    'video_files.*' => 'mimetypes:video/avi,video/mpeg,video/quicktime',
    

    如您所见,我还建议在处理数组时使用复数键,但这是个人喜好。

    【讨论】:

    • 不会撒谎,我不知道为什么会这样,但确实如此!有时,这就是当下最重要的。哈哈非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-20
    • 1970-01-01
    • 1970-01-01
    • 2021-06-29
    • 1970-01-01
    • 2019-11-24
    • 1970-01-01
    相关资源
    最近更新 更多