0

私は基本的に、サードパーティのAPIフラッシュ ファイルと対話して、HTTP POST 要求をサーバーに送信しています。

ファイルが必要なため、ある程度正しいパスにいることはわかっていcrossdomain.xmlます。その部分を追加する前は、POST変数に何も表示されていませんでしたが、そのファイルを追加したため、設定されている4つの変数があり、これらのPOST変数が送信されますファイルに関する基本情報を提供するためにアプリケーションによって..しかし、実際にはRAW POSTデータを読み取って、Flashによって送信されている画像を実際に保存する必要があります。

3つの方法があることを知っています...

  1. $GLOBALS['HTTP_RAW_POST_DATA']
  2. $HTTP_RAW_POST_DATA which is probably the same as the first
  3. file_get_contents('php://input')

何らかの理由で、これらの「機能」はどちらもありません。「仕事」とは、それらが設定されていないことを意味します.var dumpしても何も得られません。

設定するphp.ini必要がある設定があるのでしょうか、それとも Flash アプリケーションが実際の画像を送信していないのでしょうか? 私はそれが正しいことをしていると思います.なぜなら、それは半人気のあるAPIであり、他のいくつかのサイトで使用されているので、彼らの側では正しいと確信しています.

また、API キーも一切必要ありません。

4

1 に答える 1

1

always_populate_raw_post_data=1使用するには、php.ini で設定する必要がありますHTTP_RAW_POST_DATA(こちらを参照)。また、upload_max_filesizeファイルに十分な大きさの値に設定してください。

ただし、POST データが として送信されている場合、HTTP_RAW_POST_DATA は機能しませんmultipart/form-data。これは通常、ファイルを送信するときに使用されます。

非標準的な方法でファイルを送信している場合$_FILESを除き、アップロードの取得には を使用する必要があります。PHP は、ファイルのアップロードを一時的な場所に自動的に保存し、その場所を$_FILES変数に配置します。機能を使用しmove_uploaded_fileて、必要な場所に移動できます。例えば:

$place_to_put_the_file = "/my_directory/image.jpg";
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
 echo "File is valid, and was successfully uploaded.\n";
} else {
 echo "Possible file upload attack!\n";
}
于 2009-12-08T03:13:50.807 に答える