複数ファイルアップロードのContent-Type

multipart/form-dataで複数ファイルをアップロードする際のContent-Typeヘッダーを設定します。ネストされたパートヘッダーとファイル名の処理を解説します。

Form Submissions

詳細な説明

複数ファイルアップロード

単一リクエストで複数ファイルをアップロードする場合、各ファイルはmultipart/form-dataボディ内の個別のパートになり、それぞれ独自のContent-Typeとファイル名を持ちます。

ヘッダー値

Content-Type: multipart/form-data; boundary=----FormBoundary7MA4YWxkTrZu0gW

複数ファイルのボディ構造

------FormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="files"; filename="report.pdf"
Content-Type: application/pdf

[PDFバイナリデータ]
------FormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="files"; filename="photo.png"
Content-Type: image/png

[PNGバイナリデータ]
------FormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="description"

四半期報告書とカバー写真
------FormBoundary7MA4YWxkTrZu0gW--

パートごとのContent-Type

各ファイルパートはファイルのメディアタイプを示す独自のContent-Typeヘッダーを持ちます。これはリクエストのトップレベルContent-Typeとは別です。一般的なパートタイプ:

ファイルタイプ パートのContent-Type
PDF application/pdf
PNG image/png
JPEG image/jpeg
CSV text/csv
ZIP application/zip
汎用 application/octet-stream

ファイル名のエンコーディング

非ASCII文字を含むファイル名には、RFC 5987エンコーディングを使用します:

Content-Disposition: form-data; name="file"; filename*=UTF-8''%E3%83%AC%E3%83%9D%E3%83%BC%E3%83%88.pdf

curlの例

curl -X POST \
  -F "files=@report.pdf;type=application/pdf" \
  -F "files=@photo.png;type=image/png" \
  -F "description=Quarterly report" \
  https://api.example.com/upload

ユースケース

ドキュメント管理システム、画像ギャラリー、メール添付ファイルAPIなど、複数ファイルを受け付けるファイルアップロードエンドポイントの構築時に使用します。

試してみる — Content-Type Header Builder

フルツールを開く