Files
fastapi/docs/ja/docs/tutorial/request-forms-and-files.md
Sebastián Ramírez b0e99d66e8 🌐 Update translations for ja (update-outdated) (#14588)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Yurii Motov <yurii.motov.monte@gmail.com>
Co-authored-by: Motov Yurii <109919500+YuriiMotov@users.noreply.github.com>
Co-authored-by: Maruo.S <raspi-maru2004@outlook.jp>
2026-02-04 17:44:21 +01:00

2.0 KiB

リクエストフォームとファイル

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] *}

ファイルとフォームフィールドがフォームデータとしてアップロードされ、ファイルとフォームフィールドを受け取ります。

また、いくつかのファイルをbytesとして、いくつかのファイルをUploadFileとして宣言することができます。

/// warning | 注意

path operationで複数のFileFormパラメータを宣言することができますが、JSONとして受け取ることを期待しているBodyフィールドを宣言することはできません。なぜなら、リクエストのボディはapplication/jsonの代わりにmultipart/form-dataを使ってエンコードされているからです。

これは FastAPI の制限ではなく、HTTPプロトコルの一部です。

///

まとめ

同じリクエストでデータやファイルを受け取る必要がある場合は、FileFormを一緒に使用します。