Laravel验证文件扩展名?

Laravel验证文件扩展名?,laravel,file,validation,mime-types,Laravel,File,Validation,Mime Types,我有以下FormRequest,用于验证文件,特别是音频文件: public function rules() { return [ 'file' => 'bail|required|file|mimes:mpeg,mp3,mp2,aiff,wav,wave,flac,m4a,caf,ogg,aac,amr,wma|max:500000000' ]; } 然而,由于某种原因,当我上传任何类型的音频文件时,我会得到一个422声明文件类型无效。。。这是什么原因

我有以下FormRequest,用于验证
文件
,特别是音频文件:

public function rules()
{
    return [
        'file' => 'bail|required|file|mimes:mpeg,mp3,mp2,aiff,wav,wave,flac,m4a,caf,ogg,aac,amr,wma|max:500000000'
    ];
}
然而,由于某种原因,当我上传任何类型的音频文件时,我会得到一个
422
声明文件类型无效。。。这是什么原因

更新

下面是我使用axios的
ajax

const f = new FormData()
f.append('file', file)
const config = {
headers: {
'Content-Type':'multipart/form-data'
}
}
return axios.post('myendpoint', f, config).then((response) => {
// handle
}).catch((thrown) => {
if (axios.isCancel(thrown)) {
return console.log('Request canceled', thrown.message);
}
return console.log(thrown)
})

您的表格中是否有:

enctype=“多部分/表单数据”

编辑: 为了将上载的文件正确附加到FormData,您需要在以下页面上使用
onchange
事件:

输入

处理程序

function getFile(event) {
   file = event.target.files
}

通读了解更多信息。

这不是一个表单,它是一个使用
axios
formData.append()
的ajax请求,以及
'Content-Type':'multipart/form-data'
…是否还有其他配置需要添加?请提供您的ajax代码以及如何将文件附加到表单中(编辑您的问题)使用
dd($request->file);
查看文件的mime类型,因为大多数时候mp3文件都有
mpga
mime类型,所以请在
端点中检查它。