2012-05-18 59 views
0

我試圖以編程方式從S3上的安全存儲區下載zip文件,並且一旦下載發送到瀏覽器,我希望顯示收據頁面。從S3下載文件並用cURL重定向

但我不斷收到各種瘋狂的字符正在被輸出到瀏覽器而不是:

$url = "https://s3.amazonaws.com/{$bucket}/{$resource}?{$authentication_params}"; 

$ch = curl_init($url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0); 
curl_setopt($ch, CURLOPT_TIMEOUT, 30); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array('response-content-type: application/zip', 'response-content-disposition: attachment', 'Expect: 100-continue')); 
$response = curl_exec($ch); 
curl_close($ch); 

如果我在Firefox中,下載作品的地址欄中鍵入$url。如何下載文件,然後繼續到我的收據頁面?

回答

1

我最終只是顛倒我的過程的順序,並使用元刷新標題。

+1

示例嗎? –

1

您需要指定目標文件名以擴展名才能正確下載zip文件。
因此,例如,如果您要下載位於www.url.com/myzip.zip的zip文件,則需要提供帶目標文件名的-o參數。

-o告訴curl將下載的內容保存到一個文件中,沒有這個參數,curl將只顯示文件內容,在你的情況下是二進制文件。
例如: curl -o dave.zip https://www.url.com/myzip.zip

+0

'$ url'目前設置爲'「https://s3.amazonaws.com/bucket/file.zip?{$authentication_params}」;'我仍然遇到以上問題。 –

+0

抱歉有點懶,更新了我的答案,希望現在有幫助 – rb512

+0

什麼是-o在php中翻譯? –