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

如何实现远程Flask API读取本地文件路径并暂存文件读取数据?

问题本质

直接给远程Flask接口传本地文件路径完全行不通——远程服务器的文件系统和你的本地电脑是完全隔离的,它根本访问不到你本地的文件。

可行解决方案

1. 改成文件上传接口(最直接可靠)

修改你的Flask服务,让它支持接收文件上传,前端通过表单或multipart/form-data请求把本地文件传给服务器,服务器暂存后再读取处理。

示例代码:

from flask import Flask, request, jsonify
import os

app = Flask(__name__)
# 服务器上的临时存储目录,确保有读写权限
UPLOAD_DIR = "/tmp/flask_temp_uploads"
os.makedirs(UPLOAD_DIR, exist_ok=True)

@app.route("/extract-data", methods=["POST"])
def extract_data():
    # 检查请求里有没有文件
    if "file" not in request.files:
        return jsonify({"error": "没有上传文件"}), 400
    file = request.files["file"]
    if file.filename == "":
        return jsonify({"error": "未选择文件"}), 400
    
    # 暂存文件到服务器
    temp_file_path = os.path.join(UPLOAD_DIR, file.filename)
    file.save(temp_file_path)
    
    # 这里写你的数据提取逻辑
    with open(temp_file_path, "r", encoding="utf-8") as f:
        extracted_data = f.read()  # 示例:读取文件内容,换成你的实际处理逻辑
    
    # 可选:处理完删除临时文件,避免占用服务器空间
    os.remove(temp_file_path)
    
    return jsonify({"extracted_data": extracted_data})

测试用curl命令(替换成你的本地文件路径和服务器地址):

curl -X POST -F "file=@/Users/xxx/local-file.txt" http://your-server-ip/extract-data

2. 把本地文件临时暴露成公网URL

如果不想改接口逻辑,可以把本地文件通过临时工具映射成公网可访问的URL,再把这个URL传给原接口,让接口去拉取文件。

比如用ngrok:

  1. 本地启动一个简单的文件服务:
python -m http.server 8000
  1. 用ngrok把本地8000端口映射成公网URL:
ngrok http 8000
  1. 把ngrok生成的URL加上你的文件路径(比如https://abc123.ngrok.io/local-file.txt)传给你的Flask接口,接口内部用requests库请求这个URL获取文件内容。
额外说明

除非你的本地电脑和服务器在同一个局域网,并且做了文件共享(比如SMB),否则远程服务器不可能直接读取你本地的文件路径——这种共享方式安全性极低,绝对不推荐用于公网服务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 21:17:17