You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

文件上传仅允许指定扩展名时非法文件对应的合适HTTP状态码选择

文件上传扩展名校验失败推荐返回 422 Unprocessable Entity
  • 400 Bad Request:该状态码的核心语义是请求本身存在语法层面的错误,比如请求头格式错误、缺少必填请求参数、参数结构完全无法解析等,属于服务器无法正常读取请求的场景。你当前的场景中服务器可以完整解析请求内容,仅业务校验不通过,用400过于宽泛,不符合语义定位。
  • 415 Unsupported Media Type:该状态码的校验对象是请求本身的Content-Type属性,比如接口仅支持application/json格式,但调用方传了application/x-www-form-urlencoded时才适合返回415。你当前场景中请求使用的multipart/form-data是接口明确支持的,只是上传的文件内容不符合业务规则,返回415语义不匹配。
  • 422 Unprocessable Entity:该状态码恰好匹配你的场景:服务器已经成功识别请求的Content-Type、正确解析了完整请求体,只是因为业务规则校验不通过无法完成请求处理。文件扩展名不符合要求属于典型的业务校验失败场景,完全符合422的RFC语义定义,也是当前主流RESTful API设计规范里统一使用的参数业务校验失败状态码。

最佳实践:返回状态码的同时可以在响应体中补充明确的业务错误码和提示信息,比如{"code": "INVALID_FILE_TYPE", "message": "仅支持上传pdf格式文件"},方便调用方快速定位问题。

内容的提问来源于stack exchange,提问作者SJ1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 14:06:03