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

如何修改Python Flask API以接收图片作为用户输入

修改Flask API以接收图片输入

首先,GET请求不适合用来上传文件(参数长度受限且不符合HTTP规范),需要把接口改成POST请求,并通过request.files来获取上传的图片文件。以下是修改后的完整代码:

import pandas as pd
from datetime import datetime
from pandas import json_normalize
from flask import request, Flask, Response
from flask_cors import CORS
import os

app = Flask(__name__)
CORS(app)

# 定义图片保存路径(你提供的路径)
IMAGE_SAVE_PATH = r"E:\env\abc.png"

@app.route("/api_endpoint", methods=["POST"])  # 改为POST方法
def function_for_api():
    # 从请求中获取上传的图片文件
    user_input_image = request.files.get('user_input_image')
    
    if not user_input_image:
        # 如果没有上传文件,返回错误响应
        return Response(response='{"error": "未上传图片文件"}', status=400, mimetype="application/json")
    
    # 保存图片到指定路径
    user_input_image.save(IMAGE_SAVE_PATH)
    print(f"图片已保存到: {IMAGE_SAVE_PATH}")

    # 这里可以添加你的图片处理逻辑,比如读取文件内容进行分析
    # 示例:读取图片二进制内容
    # with open(IMAGE_SAVE_PATH, 'rb') as f:
    #     img_content = f.read()

    # 返回处理后的JSON响应
    resJson = '{"status": "success", "message": "图片上传并保存成功"}'
    return Response(response=resJson, status=200, mimetype="application/json")

if __name__ == "__main__":
    app.run(debug=True)  # 开启debug方便开发调试

关键修改点说明:

  • 将请求方法从["GET"]改为["POST"],符合文件上传的HTTP规范。
  • 用request.files.get('user_input_image')替代request.args.get,获取上传的文件对象。
  • 添加了文件存在性检查,避免空文件导致报错。
  • 新增了图片保存逻辑,将上传的图片保存到你指定的E:\env\abc.png路径。

测试API的方法:

你可以用以下方式测试这个接口:

  1. 使用curl命令(终端执行):
curl -X POST -F "user_input_image=@E:\env\test.png" http://127.0.0.1:5000/api_endpoint

(把E:\env\test.png换成你要上传的实际图片路径)

  1. 使用Postman/ApiFox:
  • 选择请求方法为POST,地址填http://127.0.0.1:5000/api_endpoint
  • 切换到Body标签,选择form-data格式
  • 添加一个键为user_input_image的项,类型选择File,然后选择本地图片文件上传

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 23:45:54