php - Laravel 文件验证不允许任何东西通过
问题描述
令人沮丧的一个:我正在验证我的 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 等等。
请记住,这是文件上传的“多重”输入,所以虽然这可能与它有关,但我不这么认为,因为我把它拿掉了,但它仍然没有通过。
有什么想法吗?
解决方案
验证数组时,最好使用this。
例如:
'video_files' => 'array',
'video_files.*' => 'mimetypes:video/avi,video/mpeg,video/quicktime',
如您所见,我还建议在处理数组时使用复数键,但这是个人喜好。
推荐阅读
- php - php中@$_FILES和$_FILES有什么区别?
- r - 对过滤列求和
- c++ - 打印矢量数据时得到额外的零?
- spring-boot - 内存数据库数据中的 Spring Boot 测试不会在测试之间持续存在
- python - create an interactive IntSlider widget
- c - 为什么此代码中的输出与预期不同?
- javascript - 使用使用 React js 在另一个文件中定义的数组
- sql - 如何更新列值取决于同一张表中的另一列
- javascript - 媒体查询不适用于 React App 中的样式化组件
- javascript - React 中动态构建和深度嵌套的表单