使用 FastAPI 上传文件时如何解析空的 File2Store 变量
尝试通过 FastAPI 上传文件时,您可能会遇到空的 file2store 变量尽管遵循文档的指南。要解决此问题,可以采取以下几个步骤:
1.安装 python-multipart:
确保安装了 python-multipart,因为将上传的文件解析为表单数据是必需的。使用以下命令:
pip install python-multipart
2.使用 .file 属性和 def 端点:
from fastapi import File, UploadFile @app.post("/upload") def upload(file: UploadFile = File(...)): # Get actual Python file and read/write contents contents = file.file.read() with open(file.filename, 'wb') as f: f.write(contents)
注意:为了防止阻塞服务器,请在这种情况下使用 def 而不是 async def 定义端点。
3.使用 async def 端点进行异步读取/写入:
如果您需要使用 async def,请使用异步方法来读取和写入内容,如本答案中所示。
4.处理大文件的数据块:
如果上传的文件大于可用 RAM,则将文件分块加载到内存中,并一次处理一个数据块,如提供的代码示例所示.
上传多个文件:
要在 FastAPI 中以列表形式上传多个文件,遵循以下准则:
from fastapi import File, UploadFile from typing import List # For a single file, use: # @app.post("/upload") def upload(file: List[UploadFile] = File(...)): # For a list of files, use: # @app.post("/upload") async def upload_multiple(files: List[UploadFile] = File(...)):
总之,通过安装 python-multipart,使用 UploadFile 对象的 .file 属性,处理大文件的块,并在必要时考虑异步操作,可以有效解决使用 FastAPI 上传文件时出现空 file2store 变量问题。
以上是为什么使用 FastAPI 上传文件时我的 file2store 变量为空?的详细内容。更多信息请关注PHP中文网其他相关文章!