FastAPI 学习之路(一)上传文件

FastAPI 学习之路(一)上传文件

UploadFile 的优势
  • 文件存储在内存,达到阈值后,将保存到磁盘中
  • 适用于 图片、视频大文件 …
  • 可以获取上传文件的元数据,如 文件名、类型、创建时间 …
  • 有文件对象的异步接口
  • 上传的文件是 Python文件对象,可以使用 write()、read()、seed()、close() 进行操作
单个文件的上传
from typing import List
from fastapi import APIRouter, Body, File,UploadFile

router = APIRouter()

@router.post('/up_file', response_description="Worker data added into the database")
async def up_file(
        file: UploadFile = File(...),
        # files: List[UploadFile] = File(...) # 一次性上传多个文件
):
    file_content = await file.read()  # 读取文件
    with open(file.filename,"wb") as f:
        f.write(file_content)
    return {
        'file_name': file.filename,
        'file_type': file.content_type,
    }
多个文件的上传
@router.post("/multi/up_file/", response_description="Worker data added into the database")
async def multi_up_file(files: List[UploadFile] = File(...)):
    results = []
    for file in files:
        content = await file.read() # 读取文件
        print(content)
        results.append({"filename": file.filename, "content_type": file.content_type})
    return results

上面读写文件的方式通过异步方式完成,调用如下

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值