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

使用curl向Flask API上传文件内容时遇BadRequestKeyError问题

解决Flask API文件上传的BadRequestKeyError问题

你的问题出在服务器端获取数据的方式错误:当使用curl -F命令上传文件时,Flask会将文件数据存入request.files对象,而非request.form(后者仅用于普通表单字段,不包含文件)。

修正后的服务器端代码

from flask import request

@app.route('/api_tst01/', methods=['POST'])
def api_tst01():
    # 从request.files中获取上传的文件
    input_file = request.files.get('input_txt')
    if input_file:
        # 读取文件内容(XML为文本格式,需解码为字符串)
        xml_content = input_file.read().decode('utf-8')
        print(xml_content)
        return "文件内容接收成功", 200
    # 处理未上传文件的情况
    return "未检测到上传的文件", 400

关键说明

  1. 使用request.files.get('input_txt')替代request.form["input_txt"],这是获取上传文件的正确方式
  2. 增加文件存在性检查,避免空指针错误
  3. 通过.read().decode('utf-8')将二进制文件内容转换为可读的字符串(适配XML文本格式)
  4. 返回明确的HTTP状态码和响应信息,方便调试

你的curl命令是正确的,无需修改:

curl -X POST -i -F 'input_txt=@single_file.txt' http://myhost:5000/api_tst01/

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 05:45:57