首页 > 解决方案 > 为什么在我的请求中检查 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"
}

标签: laravelvalidationrequestmime-types

解决方案


您确定您实际上是在上传具有application/jsonmimetype 的文件吗?.json 扩展名并不自动意味着它是application/json. 另请注意文档中的以下内容

为了确定上传文件的 MIME 类型,将读取文件的内容,框架将尝试猜测 MIME 类型,这可能与客户端提供的 MIME 类型不同。


推荐阅读