Python でのリクエストを使用した Multipart/Form-Data の送信
Multipart/form-data は、フォーム データとファイルは 1 回のリクエストで送信されます。 Python のリクエストでこの形式を使用するには、ファイル パラメーターを指定します。これは、キーがフォーム データ パラメーター名であり、値がファイル パスまたはファイル コンテンツを含むタプルであるディクショナリである必要があります。
次の例は、テキスト形式の値とともにファイルを送信:
import requests files = {'file_field': 'path/to/file.ext', 'text_field': 'text_value'} response = requests.post('http://example.com/upload', files=files)
ファイル名とコンテンツの制御Type
ファイル ディクショナリの値としてタプルを使用することで、各部分のファイル名とコンテンツ タイプを制御できます。タプルには、次のように 2 ~ 4 つの要素が含まれている必要があります。
たとえば、ファイル名とコンテンツ タイプを指定するには、テキスト値:
files = {'text_field': (None, 'text_value', 'text/plain')}
同じフィールドを複数指定する名前
同じ名前の複数のフィールドを送信するには、ファイル ディクショナリの値としてタプルのリストを使用します。
高度なマルチパート サポートのための Requests-Toolbelt の使用
requests-toolbelt プロジェクトは、高度なマルチパート サポートを提供します。リクエストとは異なり、デフォルトではファイル名パラメータが設定されず、開いているファイル オブジェクトからフィールドをストリーミングできます。
リクエストツールベルトの使用例を次に示します。
from requests_toolbelt.multipart.encoder import MultipartEncoder mp_encoder = MultipartEncoder( fields={ 'file_field': ('file.ext', open('path/to/file.ext', 'rb'), 'application/octet-stream'), 'text_field': 'text_value', } ) response = requests.post( 'http://example.com/upload', data=mp_encoder, headers={'Content-Type': mp_encoder.content_type} )
以上がPython のリクエスト ライブラリを使用してファイルとフォーム データを含むマルチパート/フォーム データを送信する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。