2014-01-16 98 views
3

我似乎無法找出是否有可能通過Response::download()方法創建一個下載鏈接外部 URL文件源代替本地文件路徑。例如:Laravel 4 Response ::從外部URL源下載()

Response::download('https://s3.amazonaws.com/bucket/file.zip','Download.zip'); 

我託管在Amazon S3上我的靜態和上傳文件,並希望當被請求用戶可以訪問它來創建一個下載鏈接。我從上面的測試中得到的是一個FileNotFoundException錯誤彈出說明該文件不存在。

+3

嘿har2vey - 盡我的知識,'Response :: download'只適用於文件系統託管的文件。 –

+0

@JamesBinford你的評論應該是一個答案 – younes0

回答

2

正如@詹姆斯·賓福德在評論中所說的那樣,對外部文件使用Response::download()是不可能的。它可能不是完美的,但你總是可以重定向到URL

Redirect::away('https://s3.amazonaws.com/bucket/file.zip'); 

根據文件類型將是「正常」的下載頁面(如zip文件)打開,或者如果瀏覽器支持,內容該文件將被顯示(例如圖像或文本文件)

另外,您可以從服務器上下載文件到應用服務器(例如,使用捲曲),然後使用Response::download()

+0

只是一個說明。這會將您的AWS S3端點公開給正在查找的任何人。即使URL仍然是您的應用程序,下載直接來自S3 –