上传文件接口的创建_FastAPI

上传文件接口的创建

  • 功能描述
  • 代码
  • 效果演示与注意事项

功能描述

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

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

代码

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格式进行上传操作。
上传文件接口的创建_FastAPI_第1张图片

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

在这里插入图片描述

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

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

你可能感兴趣的:(python,fastapi,python)