1

HTTPで次のリクエストを受け取りたいPHP:

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--

(注: この投稿を読みやすくするためだけにサブパーツをインデントしています。)

私は PHP にあまり詳しくないので、PHP コードでこの種のマルチパート フォーム リクエストを受信する方法を理解するためのヘルプ/ポインタを取得したいと考えています。標準の HTML フォームを受け取ったコードを書いたことがありますが、その名前を$HTTP_GET_VARS配列のインデックス キーとして使用してフォーム要素にアクセスできましたが、この場合はフォーム要素名がなく、フォーム データ部分もありません。線形 (つまり、サブ パーツ = マルチレベル配列)。

助けてくれてありがとう!

/ロバート

4

3 に答える 3

3

$HTTP_GET_VARS、などは廃止された表記法です。 、など$HTTP_POST_VARSを使用する必要があります。$_GET$_POST

これで、ファイルの内容はグローバル配列にあるはずです$_FILESが、要素名がない場合、残りの内容が に表示されるかどうかわかりません$_POST。とにかく、設定がphp.inialways_populate_raw_post_dataでtrue の場合、データは にあるはずです。また、 php://inputを読み取ると、リクエスト全体が表示されるはずです。$HTTP_RAW_POST_DATA

于 2008-09-19T10:07:14.733 に答える
1

次の点に注意してください。

「php://input を使用すると、生の POST データを読み取ることができます。これは、$HTTP_RAW_POST_DATA に代わるメモリ集約型の代替手段であり、特別な php.ini ディレクティブは必要ありません。php://input は enctype="multipart/form-data" では利用できません</p>

PHPのマニュアルから... php://input が利用できないようです

まだコメントできませんが、これは pilsetnieks の回答を補完することを目的としています

于 2013-08-16T00:04:05.697 に答える
-2

アップロードされたファイルは $_FILE グローバル変数を介してアクセスでき、他のパラメーターは $_GET グローバル変数を介してアクセスできます。

于 2008-09-19T09:52:00.137 に答える