Flask API接收Postman图片请求报错400 Bad Request求助
解决Flask接收图片时的BadRequestKeyError问题
1. 检查代码中的键名一致性
先确认你的Flask视图函数里,所有读取上传文件的代码都使用了正确的键名image——错误提示里的KeyError: 'file'说明代码中可能存在误写为request.files['file']的地方,和你Postman设置的键名不匹配。
正确的基础接收代码示例:
from flask import Flask, request app = Flask(__name__) @app.route('/predict', methods=['POST']) def predict(): # 先校验是否存在目标文件键 if 'image' not in request.files: return "未提供图片文件", 400 imagefile = request.files['image'] # 这里可以加入你的模型预测逻辑 return "图片接收成功", 200 if __name__ == '__main__': app.run(debug=True)
2. 核对Postman的请求配置细节
你提到键类型设为file、名称设为image,请再次确认以下几点:
- 请求方法为POST,URL正确指向你的Flask接口(比如
http://localhost:5000/predict) - 在
Body标签下选择form-data格式 - 新增的键:名称严格是
image(区分大小写),类型选择File而非Text,并通过Select Files选择图片文件 - 确保没有多余的键(比如误添加了名为
file的键,导致代码尝试读取不存在的键)
3. 确认请求头自动生成
Postman在使用form-data上传文件时,会自动设置正确的Content-Type: multipart/form-data请求头。如果手动修改过请求头,会导致Flask无法解析请求,请恢复为自动生成的请求头。
4. 用最简接口排查问题
如果还是报错,先运行上面的最简测试接口,排除模型预测代码的干扰。确认最简接口能正常接收图片后,再逐步加入你的预测逻辑,定位是否是模型代码影响了请求解析。
内容的提问来源于stack exchange,提问作者RayanGad
相关产品推荐
相关产品推荐

