1

我正在尝试以编程方式从 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);

如果我$url在 firefox 的地址栏中输入,下载就可以了。如何下载文件然后继续到我的收据页面?

4

2 回答 2

1

您需要指定带有扩展名的目标文件名才能正确下载 zip 文件。
因此,例如,如果您想下载位于 www.url.com/myzip.zip 的 zip 文件,您需要提供带有目标文件名的 -o 参数。

-o 告诉 curl 将下载的内容保存到文件中,如果没有此参数,curl 将仅显示文件内容,在您的情况下为二进制文件。
例子: curl -o dave.zip https://www.url.com/myzip.zip

于 2012-05-18T23:27:07.343 回答
1

我最终只是简单地颠倒了我的流程顺序并为此使用了元刷新标头。

于 2012-07-16T17:54:14.290 回答