フォームフィールド名の設定に使用する HTTP ヘッダー (multipart/form-data)

StackOverflow https://stackoverflow.com/questions/101662

  •  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
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top