簡體   English   中英

使用Laravel從Amazon S3直接下載到客戶端

[英]direct download from amazon s3 to client using laravel

我正在嘗試讓客戶端直接從Amazon s3下載一個大文件,而不通過服務器下載它

使用此功能:

        $downloadUrl = $s3->getObjectUrl('dev-checkmate', '1.zip', '+5 minutes', array(
            'ResponseContentDisposition' => 'attachment; filename="test.zip"','Content-Type' => 'application/zip',
    ));
    return $downloadUrl;

給我一個有效的網址,我可以將其粘貼到瀏覽器中,下載將開始,如何制作我的網頁以開始下載而無需將用戶重定向到該網址? (我不希望他得到空白頁,我希望他留在我的網頁中)

還是有一種不同的方法可以使用戶直接從s3開始下載? 我不想使用我的服務器來執行此操作的原因是文件很大,並且我的服務器帶寬較慢。

建議您使用javascript在新窗口/標簽中打開下載URL。 通常,如果瀏覽器檢測到下載,則白頁會自動關閉。

這是一個獲取下載URL然后進行重定向的示例:

$.ajax({
    url: '/download/test.zip', // change this to your real URL
    type: 'GET'
}).done(function(data){
    window.open(data);
});

另外,您可以在呈現視圖時插入下載URL,因此無需進行該Ajax調用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM