multipart/form-data — HTTPでのファイルアップロード

HTMLフォームのファイルアップロードに使用されるMIMEタイプmultipart/form-dataの境界構文、バイナリパート、実践例を理解します。

Multipart

詳細な説明

multipart/form-data

multipart/form-dataは、HTMLフォームがファイルアップロードやバイナリ/テキスト混合データを送信する際に使用されるMIMEタイプです。RFC 7578で定義されています。

仕組み

リクエストボディはユニークな境界文字列で区切られた複数のパートに分割されます。各パートは独自のヘッダーとボディを持ちます。

form-urlencodedとの比較

特徴 form-urlencoded multipart/form-data
ファイルアップロード 不可 可能
バイナリデータ 不可(エンコード必要) 可能(生バイト)
オーバーヘッド 高(境界)
用途 シンプルなフォーム ファイルアップロード

重要: FormData使用時にContent-Typeヘッダーを手動で設定しないでください — ブラウザが自動的にboundaryパラメータを追加します。

ユースケース

HTMLフォームにファイル入力フィールドが含まれる場合、APIに画像やドキュメントをアップロードする場合、または単一のHTTPリクエストでテキストフィールドとバイナリデータを混合する場合にmultipart/form-dataを使用します。

試してみる — MIME Type Reference

フルツールを開く