返回
FastAPI:轻松实现文件上传的秘籍
后端
2024-01-17 19:27:29
在当今互联网世界,文件的上传和下载是开发中普遍遇到的问题。在使用Python开发的Web应用程序时,FastAPI是一个流行的框架,它提供了对文件上传的支持。通过FastAPI,开发者可以轻松实现上传和下载文件功能。
使用File实现文件上传
使用File实现文件上传非常简单,只需要在FastAPI的路由函数中将参数类型设置为File,如下所示:
@app.post("/uploadfile")
async def upload_file(file: UploadFile = File(...)):
"""
上传文件
"""
# 将文件保存到本地
with open(file.filename, "wb") as f:
f.write(file.file.read())
# 返回文件信息
return {"filename": file.filename, "size": file.file.size}
在上面的代码中,UploadFile
是FastAPI提供的文件上传类型。file.filename
是上传的文件名,file.file.size
是上传文件的大小。
使用Form表单上传文件
除了使用File实现文件上传外,FastAPI还支持使用Form表单上传文件。在Form表单上传文件中,需要在HTML表单中添加一个<input type="file">
元素,如下所示:
<form action="/uploadfile" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="Upload">
</form>
在FastAPI的路由函数中,需要使用request.files
来获取上传的文件,如下所示:
@app.post("/uploadfile")
async def upload_file(file: UploadFile = File(...)):
"""
上传文件
"""
# 将文件保存到本地
with open(file.filename, "wb") as f:
f.write(file.file.read())
# 返回文件信息
return {"filename": file.filename, "size": file.file.size}
在上面的代码中,request.files
是一个字典,其中包含了所有上传的文件。file
是上传文件的键,UploadFile
是上传文件的类型。
总结
FastAPI提供了对文件上传的支持,包括使用File实现文件上传和使用Form表单上传文件的方式。通过使用FastAPI,开发者可以轻松实现上传和下载文件功能,从而使应用程序更加灵活,能够轻松接收和处理用户提交的文件。