我试图让我的客户端直接从amazon s3下载一个大文件,而无需通过服务器下载
使用此功能:
$downloadUrl = $s3->getObjectUrl('dev-checkmate', '1.zip', '+5 minutes', array(
'ResponseContentDisposition' => 'attachment; filename="test.zip"','Content-Type' => 'application/zip',
));
return $downloadUrl;
给了我一个有效的网址,我可以粘贴到浏览器并开始下载,如何让我的网页开始下载而无需重定向到用户的网址? (我不希望他得到一个空白页面,我希望他留在我的网页上)
或者可能有一种不同的方法让用户直接从s3开始下载? 我不想使用我的服务器这样做的原因是文件非常大,我的服务器上的带宽很慢。
答案 0 :(得分:0)
我建议您使用javascript在新窗口/标签中打开下载URL。通常,如果浏览器检测到下载,则白页会自动关闭。
这是一个获取下载URL然后进行重定向的示例:
$.ajax({
url: '/download/test.zip', // change this to your real URL
type: 'GET'
}).done(function(data){
window.open(data);
});
或者,您可以在渲染视图时插入下载网址,这样您就不需要进行该ajax调用。