我正在尝试以编程方式从S3上的安全存储桶中下载zip文件,并且一旦将下载发送到浏览器,我希望显示收据页面。
但是我不断地将各种疯狂的角色输出到浏览器中:
$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
,则下载有效。如何下载文件然后继续我的收据页面?
答案 0 :(得分:1)
您需要使用扩展名指定目标文件名才能正确下载zip文件。
因此,例如,如果您要下载位于www.url.com/myzip.zip的zip文件,则需要提供带目标文件名的-o参数。
-o告诉curl将下载的内容保存到文件中,如果没有此参数,curl将只显示文件内容,在您的情况下是二进制文件。
例如:
curl -o dave.zip https://www.url.com/myzip.zip
答案 1 :(得分:1)
我最终只是简单地颠倒了我的流程的顺序,并为此使用了元刷新标题。