上传文件接口的创建_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

相关推荐
北斗落凡尘7 小时前
LangGraph 入门实战(2)
python·langchain
ttod_qzstudio8 小时前
Java 常用语法极简通关(五):类与对象——字段、方法、构造器、this 与 static
java·开发语言·python
jufeng13079 小时前
【系列:手搓自主 AI Agent:Hermes 架构原理剖析 · 第 1 篇】
人工智能·python·架构·agent
月光船幽幽10 小时前
影子模式下保护 logits 不被修改
人工智能·python·算法
_oP_i12 小时前
python 后缀 mjs文件
开发语言·python
北斗落凡尘12 小时前
如何使用LangGraph(1)
python·langchain
Livia要学习13 小时前
Python装饰器
开发语言·python
大模型丫丫14 小时前
LangChain4j:Java 生态的 AI 应用开发利器
java·人工智能·python
circuitsosk14 小时前
向量数据库选型与性能压测:Milvus、Pinecone、Chroma在真实业务下的对比
数据库·python·pinecone·milvus·向量数据库·chroma
雾时之林14 小时前
python--字符串
开发语言·python