2013-08-27 97 views
0

有沒有什麼辦法檢索二進制數據文件發送作爲對POST請求的響應?php:從POST請求檢索二進制文件

I.e.您可以在某個頁面中自定義您的軟件包,而不是使用ZIP歸檔單擊此提交和HTTP服務器resposne。

我知道我可以用cURL發送POST請求,但接下來要做什麼?如何檢索這個文件?

感謝

+1

你嘗試'上捲曲請求的響應file_put_contents()'? – Maerlyn

+0

not file_get_contents()? – marverix

+1

如果你想保存它,它是file_put_contents(把輸出放到一個文件中)。 – Maerlyn

回答

1

使用cURL發送POST請求(我沒有顯示那部分代碼,你說你知道該怎麼做)。返回的響應將是ZIP文件的內容。然後您可以將其保存在本地文件中,或將其發送給客戶端;我在下面顯示第一個選項。

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
... 
$result = curl_exec($ch); 
file_put_contents("foo.zip", $result); 

您還可以使用CURLOPT_FILE選項首次使用變量直接寫入文件,而不是:

$fh = fopen("foo.zip", "w"); 
curl_setopt($ch, CURLOPT_FILE, $fh); 
close($fh); 
+0

如何在AJAX調用的成功函數中捕獲這個附件? – cars10m

+0

@ cars10你不會。這是作爲對正常表單提交的迴應。瀏覽器會彈出一個文件保存對話框。 – Barmar

+0

啊,如果你(在這種情況下*我*)正確地閱讀這個問題,生活可以變得如此簡單! ;-)) – cars10m

0

一種解決方案是讓服務器把這個Zip文件一起,然後送中郵響應的鏈接回。

+0

嗯,這是假設,'POST'被用在AJAX請求中。所以...忘了它! ;-) – cars10m