フォームフィールド名の設定に使用する HTTP ヘッダー (multipart/form-data)
-
01-07-2019 - |
質問
生の HTTP リクエストを Apache サーバーに渡します (PHP によって受信されます)。リクエストのタイプは multipart/form-data です。つまり、HTML フォームを送信するときに使用されるのと同じ MIME タイプ。ただし、フォームフィールド名を設定するためにどのHTTPヘッダーを使用すればよいかわかりません(これを定義するヘッダーだと思いますが、他に何があるかはわかりません)。PHPでこれを使用して、 $_GET または $_FILES のフィールド。
HTTP リクエストは次のようになります。
Content-type: multipart/form-data;boundary=main_boundary
--main_boundary
Content-type: text/xml
<?xml version='1.0'?>
<content>
Some content goes here
</content>
--main_boundary
Content-type: multipart/mixed;boundary=sub_boundary
--sub_boundary
Content-type: application/octet-stream
File A contents
--sub_boundary
Content-type: application/octet-stream
File B contents
--sub_boundary
--main_boundary--
解決
Content-Disposition ヘッダーには、コントロール名を含む name 引数があります。各 --sub_boundary の後に 1 つある必要があります。
--sub_boundary
Content-Disposition: form-data; name="mycontrol"
忘れそうだった:フィールドがファイル コントロールの場合、ファイル名フィールドと Content-Type ヘッダーもあります
--sub_boundary
Content-Disposition: form-data; name="mycontrol"; filename="file1.xml"
Content-Type: application/xml;
ファイルがテキストでない場合は、次のものも必要です
Content-Transfer-Encoding: binary
所属していません StackOverflow