如何处理文件上传并保存
当你接收到一个文件之后,你需要将它保存到你的服务器上。在FastAPI中,你可以使用Python的标准库os
和shutil
来处理文件上传和存储。
from fastapi import FastAPI, File, Form, UploadFile
import shutil
import os
app = FastAPI()
@app.post("/files/")
async def create_file(file: bytes = File(...), fileb: UploadFile = File(...), token: str = Form(...)):
with open("file.txt", "wb") as f:
f.write(file)
os.makedirs("/app/data", exist_ok=True)
shutil.copy2(fileb.filename, "/app/data")
return {"file_size": len(file), "token": token}
上面的代码将文件保存到了当前目录下的file.txt
文件中,同时将fileb
保存到了/app/data
目录下。你可以使用open()
函数和with
语句用于打开并创建文件。其中,"wb"
参数表示以二进制写入模式打开文件。你可以使用f.write(file)
将bytes
类型的文件写入到文件中。
os.makedirs("/app/data", exist_ok=True)
用于创建一个目录,如果目录已经存在,则不会抛出异常。这个目录将用于存储UploadFile
类型的文件。shutil.copy2(fileb.filename, "/app/data")
用于将文件从临时目录复制到指定目录中。