首页 > 后端开发 > Python教程 > 为什么使用 FastAPI 上传文件时我的 file2store 变量为空?

为什么使用 FastAPI 上传文件时我的 file2store 变量为空?

Linda Hamilton
发布: 2024-12-14 02:52:11
原创
675 人浏览过

Why is my file2store variable empty when uploading files with FastAPI?

使用 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板