Files
fastapi/docs/zh/docs/tutorial/request-forms-and-files.md
2026-02-06 10:19:47 +01:00

1.4 KiB

请求表单与文件

FastAPI 支持同时使用 FileForm 定义文件和表单字段。

/// info | 信息

接收上传的文件和/或表单数据,首先安装 python-multipart

请先创建并激活一个虚拟环境{.internal-link target=_blank},然后再安装,例如:

$ pip install python-multipart

///

导入 FileForm

{* ../../docs_src/request_forms_and_files/tutorial001_an_py39.py hl[3] *}

定义 FileForm 参数

创建文件和表单参数的方式与 BodyQuery 一样:

{* ../../docs_src/request_forms_and_files/tutorial001_an_py39.py hl[10:12] *}

文件和表单字段作为表单数据上传与接收。

声明文件可以使用 bytesUploadFile

/// warning | 警告

可在一个路径操作中声明多个 FileForm 参数,但不能同时声明要接收 JSON 的 Body 字段。因为此时请求体的编码为 multipart/form-data,不是 application/json

这不是 FastAPI 的问题,而是 HTTP 协议的规定。

///

小结

在同一个请求中接收数据和文件时,应同时使用 FileForm