上传文件接口的创建_FastAPI

上传文件接口的创建

功能描述

前端用户需要上传文件至平台,就比如CSDN的上传资源部分,都是一样的功能逻辑,想要实现这个功能其实并不难。

这里以上传的JSON格式文件为例,其他格式文件的话可以自行查看官方文档。由于json格式的文件需要转变为字典结构,相较其他而言特殊一些,所以下面以json格式文件为例。

代码

python 复制代码
from fastapi import APIRouter, HTTPException, Response, Request, FastAPI, File, UploadFile, Form, Query 

@gpt_router.post("/uploadfiles")
async def create_upload_files(files: List[UploadFile] = File(...), task_id: str = Form(None)):    
    for uploaded_file in files:
        # 判断文件类型是否为 JSON
        if not uploaded_file.filename.endswith(".json"):
            return HttpResponse.ok(message="文件格式有误,请上传json格式")
        # 读取并转换数据
        contents = await uploaded_file.read()
        json_data = json.loads(contents)
        # 对数据进行下一步操作
        # print(json_data)
        # ...
    return HttpResponse.ok(message="上传成功")

效果演示与注意事项

这里用ApiFox进行模拟用户上传操作。

需要注意的是,上传文件用form-data格式进行上传操作。

接口进行接收的话也要注意格式,使用files: List[UploadFile] = File(...), task_id: str = Form(None)进行接收,From和File数据格式,这样接口会将数据自动识别为from-data进行处理。

API测试工具是可以通过点选自动将数据修改为form-data格式,但在前端进行请求的话,注意修改请求数据格式为form-data。

文件保存操作

文件有上传就保存,文件下载保存接口的创建操作请移步这篇文章:

链接: 文件下载保存接口的创建_FastAPI

相关推荐
hhcgchpspk19 分钟前
flask服务端页面预防被爬措施
后端·python·flask·网络爬虫·防爬
小小张说故事23 分钟前
Python 里 copy.copy() 和 deepcopy() 到底差在哪:拆开 __copy__、__deepcopy__ 和那个防止无限递归的 memo 字典
python
vipxieliang24 分钟前
Python collections:高效容器与实战案例
后端·python
LK_0737 分钟前
【FastAPI】基础篇 01|开始之前:API、HTTP 与 FastAPI 到底是什么
网络协议·http·fastapi
青少儿编程课堂39 分钟前
蓝桥杯青少组图形化 STEMA 省考(报名倒计时·11/22开考)+ 全国青少年信息素养大赛 2026—2027赛季 + 电子学会图形化考级:校园华容道大闯关
c++·python·算法·bfs·信息学竞赛
特创数字科技1 小时前
写了个 Windows 下载器:一键拉 GitHub / Gitee 源码,带 SHA256 校验
python·github
郝学胜-神的一滴2 小时前
AI 编程智能体 27:吃透MCP通信机制
人工智能·python·langchain·wpf·numpy·scikit-learn
天天被压力2 小时前
【A股分钟级高频数据完全手册 #09】A股历史分时交易数据接口:普通分时怎么批量下
java·人工智能·python
天天被压力2 小时前
【A股分钟级高频数据完全手册 #10】股票实时行情数据接口Python:公开源实时交易取数
java·人工智能·python
特立独行的猫A12 小时前
我给女儿写了个打字练习:一边敲键盘,一边把小学英语单词记牢
java·后端·python