【Fastapi】批量上传文件(文档、图片、视频等)

简介: 【Fastapi】批量上传文件(文档、图片、视频等)

项目演示



【Fastapi】批量上传文件(文档、图片、视频等)



https://www.bilibili.com/video/BV1fY411c7gX/


功能说明


实现多文件批量上传到服务器并保存文件


编程思路


确立阶段性思维,使用fastapi的接口文档swagger ui进行接口测试,http://localhost:8999/docs

1、确保多文件的传输成功

2、获取传输到后台的文件二进制内容

3、将文件批量写入后台文件夹


重要知识点分析


协程:

文件成功上传到服务器后,想要对文件进行保存,首先需要对文件进行二进制读取。由于fastapi对File方法的封装,得到的file.read()是协程对象,故需要await 方法进行读取。


源代码

pip install fastapi
pip install python-multipart
pip install uvicorn
from fastapi import FastAPI,UploadFile,File
from typing import List
app=FastAPI()
async def save_files(files):
    for file in files:
        "type:<class 'coroutine'>"
        cont=await file.read() 
        with open(f'myfiles/{file.filename}','wb') as f:
            f.write(cont)
    return 'success'
@app.post('/',summary='上传文件')
async def upload_files(files:List[UploadFile]=File(...)):
    return await save_files(files)
if __name__ == '__main__':
    import uvicorn
    uvicorn.run('app:app',host='0.0.0.0',port=8999)
相关文章
|
安全 API
Fastapi交互式文档实现方法讲解
Fastapi交互式文档实现方法讲解
155 0
|
7月前
|
数据采集 前端开发 JavaScript
vue3 + fastapi 实现选择目录所有文件自定义上传到服务器
vue3 + fastapi 实现选择目录所有文件自定义上传到服务器
205 0
|
存储 前端开发 JavaScript
聚是一团火散作满天星,前端Vue.js+elementUI结合后端FastAPI实现大文件分片上传
分片上传并不是什么新概念,尤其是大文件传输的处理中经常会被使用,在之前的一篇文章里:[python花式读取大文件(10g/50g/1t)遇到的性能问题(面试向)](https://v3u.cn/a_id_97)我们讨论了如何读写超大型文件,本次再来探讨一下如何上传超大型文件,其实原理都是大同小异,原则就是化整为零,将大文件进行分片处理,切割成若干小文件,随后为每个分片创建一个新的临时文件来保存其内容,待全部分片上传完毕后,后端再按顺序读取所有临时文件的内容,将数据写入新文件中,最后将临时文件再删掉。
聚是一团火散作满天星,前端Vue.js+elementUI结合后端FastAPI实现大文件分片上传
|
存储 SQL 前端开发
FastAPI第三天---文件请求
FastAPI第三天---文件请求
214 0
FastAPI第三天---文件请求
|
JSON 前端开发 测试技术
FastApi下载文件
FastApi下载文件
FastApi下载文件
FastAPI(36)- FastAPI 的元数据配置和文档 URL
FastAPI(36)- FastAPI 的元数据配置和文档 URL
440 0
FastAPI(36)- FastAPI 的元数据配置和文档 URL
FastAPI 学习之路(三十七)元数据和文档 URL
FastAPI 学习之路(三十七)元数据和文档 URL
FastAPI 学习之路(三十七)元数据和文档 URL
|
开发框架 JSON 数据格式
FastAPI 学习之路(十八)表单与文件
FastAPI 学习之路(十八)表单与文件
FastAPI 学习之路(十八)表单与文件
|
存储 JSON 数据格式
fastapi 请求文件 / 表单 / 处理错误 / 路径操作配置 / jsonable_encoder
fastapi 请求文件 / 表单 / 处理错误 / 路径操作配置 / jsonable_encoder
433 0
fastapi 请求文件 / 表单 / 处理错误 / 路径操作配置 / jsonable_encoder
|
NoSQL 测试技术 Redis
FastAPI(八十四)实战开发《在线课程学习系统》--接口测试(下)
FastAPI(八十四)实战开发《在线课程学习系统》--接口测试(下)
FastAPI(八十四)实战开发《在线课程学习系统》--接口测试(下)