use*_*269 1 php validation mime-types laravel laravel-4
我正试图在laravel中验证文件大小和上传文件(mp3文件)的mime类型.但是当我上传图像(gif,png)时,验证似乎才开始.当我上传一个大小为100Mb的mkv文件时,验证似乎没问题.这是我目前的代码:
$file = Input::file('audio_file');
$file_rules = array('audio_file' => 'size:5242880|mimes:mp3'); //also tried mpeg
$file_validator = Validator::make(Input::file(), $file_rules);
if($file_validator->fails()){
//return validation errors
}else{
//always goes here and succeeds
}
Run Code Online (Sandbox Code Playgroud)
任何想法我的代码有什么问题?提前致谢!
尝试将文件规则行更改为:
$file_rules = array('audio_file' => 'size:5242880|mimes:audio/mpeg,audio/mp3,audio/mpeg3');
Run Code Online (Sandbox Code Playgroud)
根据该 "音频/ MPEG"是正确的MIME类型为MP3文件(有些浏览器也使用"音频/ MPEG3"或"音频/ MP3").
如果这不起作用,您可以在验证之前获取MIME类型:
$file = Input::file('audio_file');
$mimeType = $file->getMimeType();
$supportedTypes = ['audio/mpeg', 'audio/mpeg3', 'audio/mp3'];
if (in_array($mimeType, $supportedTypes)) {
// validate or simply check the file size here
} else {
// do some other stuff
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5677 次 |
| 最近记录: |