干货:文件上传端点解析

文件上传端点解析: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,同步受理、异步出结果。


相关推荐
ZhangJun952 小时前
Mobike 共享单车分析项目
人工智能·python·算法·kmeans·聚类·knn
XLYcmy2 小时前
PDF 论文处理器 — 优势与功能文档
大数据·python·网络安全·pdf·dify·rag·漏洞检测
小猴子爱上树2 小时前
跨马翻译:批量图片翻译+视频字幕+智能抠图,跨境电商在线图片翻译工具
大数据·人工智能·python·音视频
winfredzhang3 小时前
用 Python 手写一个“所见即所得“的图片水印工具:wxPython + Pillow 实战详解
python·pillow·rotate·crop·身份改水印
xUxIAOrUIII3 小时前
日常笔记-1005-1
linux·笔记·python·macos
yl45303 小时前
内蒙热门的废酸再生处理企业
大数据·python
IT方大同3 小时前
java输入输出+方法
java·开发语言·python
Java后端的Ai之路4 小时前
Python 进阶探索30 - Python中的装饰器
开发语言·人工智能·python·文件处理·装饰器模式
言乐64 小时前
Python基于关键词分拣快递(适用于电商与货运代理等)
开发语言·python·django·virtualenv·pygame