第 6 章: 文件上传
本章概述
学习如何在FastAPI中实现文件上传功能。
6.1 File类型
使用File接收上传的文件:
from fastapi import FastAPI, File, UploadFile
app = FastAPI()
@app.post("/uploadfile/")
def create_upload_file(file: bytes = File(...)):
return {"file_size": len(file)}6.2 UploadFile类型
UploadFile提供更好的性能(使用临时文件):
from fastapi import FastAPI, File, UploadFile
app = FastAPI()
@app.post("/uploadfile/")
async def create_upload_file(file: UploadFile = File(...)):
return {
"filename": file.filename,
"content_type": file.content_type
}6.3 保存文件
from fastapi import FastAPI, File, UploadFile
import shutil
app = FastAPI()
@app.post("/uploadfile/")
def create_upload_file(file: UploadFile = File(...)):
with open(f"uploads/{file.filename}", "wb") as buffer:
shutil.copyfileobj(file.file, buffer)
return {"filename": file.filename}6.4 处理多个文件
from typing import List
@app.post("/uploadfiles/")
async def create_upload_files(files: List[UploadFile] = File(...)):
return {"filenames": [file.filename for file in files]}

小结
本章学习了: - ✅ 使用File和UploadFile接收文件 - ✅ 保存上传的文件 - ✅ 处理多个文件上传