laravel - 为什么在我的请求中检查 json mimetype 不起作用?
问题描述
我有一个 Laravel API,我提出了一个自定义请求来验证这些值。我正在通过 Postman 测试我的路线,并在我的设置字段中添加了一个 JSON 文件。但是,当我尝试验证自定义请求中的 mimetype 时,会引发错误。当我删除|mimetypes:application/json
路由成功返回响应。为什么会这样?
public function rules()
{
return [
'name' => 'required|string|min:2|max:32|unique:game_templates',
'path' => 'required|string|url|unique:game_templates',
'settings' => 'required|file|mimetypes:application/json',
'orientation' => Rule::in(GameTemplate::$orientations),
];
}
JSON 内容
{
"name":"test"
}
解决方案
您确定您实际上是在上传具有application/json
mimetype 的文件吗?.json 扩展名并不自动意味着它是application/json
. 另请注意文档中的以下内容:
为了确定上传文件的 MIME 类型,将读取文件的内容,框架将尝试猜测 MIME 类型,这可能与客户端提供的 MIME 类型不同。