Python高性能web框架-FastApi教程:(9)文件上传

(9)文件上传

1. File
from fastapi import APIRouter, File # 导入File

app05 = APIRouter()

@app05.post('/file')
async def get_file(file:bytes = File()): #上传文件写法
    print(file)
    return {'file': len(file)} # 计算字节大小

测试下:
在这里插入图片描述

@app05.post('/files')
async def get_files(files:list[bytes] = File()):
    # 多个文件上传
    for file in files:
        print(len(file))
    return {'files': len(files)}

File适合小文件上传,一般不怎么用的。我们常用的是UploadFile

2. UploadFile
@app05.post('/uploadfile')
async def upload_file(file:UploadFile):
    # 适合大文件上传
    print(file.filename)
    # 文件保存
    with open (file.filename,'wb') as f:
        f.write(file.file.read())
    return {'filename':file.filename}

越是常用的,代码反而越简单

@app05.post('/uploadfiles')
async def upload_files(files:list[UploadFile]):
    # 多个文件上传
    for file in files:
        with open(file.filename,'wb') as f:
            f.write(file.file.read())
            print(file.filename)
    
    # 返回文件名列表
    return {'names': [file.filename for file in files]}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值