干货:文件上传端点解析

文件上传端点解析:POST /PDF2Excels/UpLoadFile

端点是干什么的

外部系统把一份 PDF/Excel 传上来,我们接收、存到临时目录、塞进任务队列解析,最后回传结果。这是典型的"上传 → 异步处理 → 回传"。

接收文件

FastAPI 接收上传文件用 UploadFile:

python 复制代码
@app.post("/PDF2Excels/UpLoadFile")
async def upload(file: UploadFile = File(...)):
    # 存到本地临时目录
    folder = os.path.join(app.state.temp_folder, "upload")
    os.makedirs(folder, exist_ok=True)
    filepath = os.path.join(folder, file.filename)
    with open(filepath, "wb") as f:
        f.write(await file.read())
    return {"code": 0, "filepath": filepath, "folder": folder}

处理顺序

  1. 校验扩展名 / 大小(可选,好习惯是入口就做)。
  2. 落盘到临时目录,返回可用的绝对路径。
  3. 组任务塞进队列。
  4. 回传任务ID,后续轮询/回调。

落盘为什么必须

UploadFile 是流式的,不落盘你没法用 pdfplumber/openpyxl 打开。先存成真实文件,再交给引擎是标准做法。

要给任务一个 ID

异步处理不能直接返回结果,得返回一个 p_TaskId,让调用方拿着它去查结果:

python 复制代码
item = {
    "p_FolderPath": folder,
    "p_TaskId": task_id,
    "template": template,
}

返回值设计

  • 成功:{"code": 0, "task_id": "xxx", "msg": "已接收"}
  • 队列满:{"code": 503, "msg": "队列已满,请稍后重试"}

成功不代表解析完,只代表"已受理"。语义清清楚楚。

一句话:上传端点 = 接文件→落盘→组任务→回传ID,同步受理、异步出结果。


相关推荐
在世修行6 小时前
智学文枢:页面切换与跨页数据预填
python·桌面应用·signal·1024程序员节·pyside·跨页跳转·状态预填
2601_962885727 小时前
如何用 Python 把 K 线重采样成任意周期?
开发语言·python
打工仔折腾 AI7 小时前
在 Ubuntu ARM64 部署 Q1 V3.0 MuJoCo 模型:加载、单步推理与执行器响应解析
linux·运维·人工智能·python·深度学习·ubuntu·性能优化
信誓旦旦的程序猿7 小时前
【Python量化实战宝典 #21】北向资金跟随手册:聪明钱择时信号(Python 可跑)
python·1024程序员节·股票数据api·股票数据api接口·股票api数据接口·股票量化数据api·股票量化数据接口
严谨的麻辣烫8 小时前
静态 ISP 代理请求超时怎么排查?Python 与 curl 实战
python·http·requests·1024程序员节·网络排障
KeepRobots9 小时前
11-01 温哥华不回拨:用 60 行 Python 查你的工单系统会不会差一小时(KeepRobots 工程笔记)
python
xiao77mwq9 小时前
你以为 OCR 慢?实测 81.3 s 里全是故障代价:如何把「定格态」消掉,让耗时从 6.5 s 到 13 倍差距显出原形
python
深圳市益普科技有限公司10 小时前
半导体良率管理YMS:良率与设备参数的相关性,先拉哪几组数据
人工智能·python·算法
“AI国潮设计-小江”10 小时前
【AIGC实战】Python+SDXL打造“潮汕英歌舞IP”万能立牌插件,批量生成“发财元宝蛋糕”视觉营销方案(附源码)
开发语言·人工智能·python·prompt·aigc
砚底藏山河11 小时前
python量化实操:冷热分层存储
java·开发语言·python·金融