上传文件接口的创建_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)进行接收,FromFile数据格式,这样接口会将数据自动识别为from-data进行处理。

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

文件保存操作

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

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

相关推荐
应用市场5 小时前
构建自定义命令行工具 - 打造专属指令体
开发语言·windows·python
东方佑5 小时前
从字符串中提取重复子串的Python算法解析
windows·python·算法
Dfreedom.6 小时前
一文掌握Python四大核心数据结构:变量、结构体、类与枚举
开发语言·数据结构·python·变量·数据类型
一半烟火以谋生6 小时前
Python + Pytest + Allure 自动化测试报告教程
开发语言·python·pytest
叶子丶苏7 小时前
第八节_PySide6基本窗口控件_按钮类控件(QAbstractButton)
python·pyqt
百锦再7 小时前
对前后端分离与前后端不分离(通常指服务端渲染)的架构进行全方位的对比分析
java·开发语言·python·架构·eclipse·php·maven
Blossom.1188 小时前
把AI“刻”进玻璃:基于飞秒激光量子缺陷的随机数生成器与边缘安全实战
人工智能·python·单片机·深度学习·神经网络·安全·机器学习
Kratzdisteln9 小时前
【Python OOP Diary 1.1】题目二:简单计算器,改错与优化
python·面向对象编程
小白银子9 小时前
零基础从头教学Linux(Day 53)
linux·运维·python
skywalk81639 小时前
基于频域的数字盲水印blind-watermark
linux·开发语言·python