Laravel一直拒绝m4a音频格式,如何修复它?

时间:2016-03-16 09:50:24

标签: validation laravel m4a

对于我的生活,我只是无法弄清楚如何通过laravel验证允许m4a音频文件通过

$this->validate($request,[
    'audio' => 'required|mimes:mpga,mp3,mp4a,aac,m4a'
]);

mp3,mpeg文件可以成功上传,但只是继续拒绝m4a。

任何人都知道我应该包含哪种哑剧类型?

要清楚,我正在寻找Audio / x-m4a的猜测扩展。所有这些(m4a,mp4a,mp4,aac)似乎都不起作用。

由于

2 个答案:

答案 0 :(得分:1)

对于Laravel 5.4,请尝试以下操作: 将mimes更改为mimetypes,然后使用audio/x-m4a代替m4a

答案 1 :(得分:0)

如果dd文件mime类型为$this->file('contract_copy')->guessExtension();,则会为"mp4a"扩展名返回m4a个内容。

所以我认为您需要mp4a验证,而不是像m4a那样的

$this->validate($request,[
    'audio' => 'required|mimes:mpga,mp3,mp4a,aac,mp4a'
]);

更多信息:检查vendor\laravel\framework\src\Illuminate\Validation\Validator.php中的验证程序类文件,您可以看到laravel如何验证mime类型。

protected function validateMimes($attribute, $value, $parameters)
{
    if (! $this->isAValidFileInstance($value)) {
        return false;
    }

    return $value->getPath() != '' && in_array($value->guessExtension(), $parameters);
}