这是如何在laravel中验证视频文件?
$validator = Validator::make(Input::all(),
array(
'file' => 'mimes:mp4,mov,ogg | max:20000'
)
);
因为即使上传的文件是mov类型,它也会返回该文件应为上述规则中列出的类型之一。
我如何最终解决它:
根据下面答案的提示,我最终将上传文件的mime类型存储到
$mime
变量中,如下所示:$file = Input::file('file');
$mime = $file->getMimeType();
然后必须编写一条if语句来检查视频mime类型:
if ($mime == "video/x-flv" || $mime == "video/mp4" || $mime == "application/x-mpegURL" || $mime == "video/MP2T" || $mime == "video/3gpp" || $mime == "video/quicktime" || $mime == "video/x-msvideo" || $mime == "video/x-ms-wmv")
{
// process upload
}
最佳答案
该代码正在检查扩展名,而不是MIME类型。您应该使用适当的MIME类型:
Video Type Extension MIME Type
Flash .flv video/x-flv
MPEG-4 .mp4 video/mp4
iPhone Index .m3u8 application/x-mpegURL
iPhone Segment .ts video/MP2T
3GP Mobile .3gp video/3gpp
QuickTime .mov video/quicktime
A/V Interleave .avi video/x-msvideo
Windows Media .wmv video/x-ms-wmv
如果不确定要测试的文件的MIME类型,可以尝试
$file->getMimeType()