簡體   English   中英

從Flash POST請求讀取RAW數據(圖像)

[英]Reading RAW data from a Flash POST Request ( images )

我基本上是在與第三方API閃存文件進行交互,以將HTTP POST請求發送到我的服務器。

我知道我走在正確的道路上,因為它需要一個crossdomain.xml文件,並且在我添加該部分之前,沒有顯示任何內容,但是由於我添加了該文件,因此設置了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')

無論出於什么原因,這些“工作”都沒有。 “工作”是指沒有設置它們,當我變儲它們時,我什么也沒得到。

可能是我需要在php.ini中進行設置,還是Flash應用程序確實沒有發送實際圖像? 我認為這是對的,因為它是一種半流行的API,並且已被其他兩個網站使用,因此我很確定它的目的是正確的。

而且它們也不需要任何類型的API密鑰。

您需要在php.ini中將always_populate_raw_post_data=1設置為使用HTTP_RAW_POST_DATA always_populate_raw_post_data=1 此處 )。 另外,請確保將upload_max_filesize設置為足以容納文件的值。

但是,如果POST數據以multipart/form-data發送,則HTTP_RAW_POST_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";
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM