簡述Laravel 5 下載檔案

來源:互聯網
上載者:User

Laravel 5 下載檔案

laravel 下載檔案提供了很多方法,可以使用 Stroage。laravel 5 自己帶的檔案系統是非常強大的,提供了很多方法,並且還支援遠程儲存等等。也可以直接使用 Response,laravel 5 的 Response也是基於 Syfmony的 Symfony\Component\HttpFoundation \Response的進一步封裝。

實踐出真理

昨天做了一個下載檔案的功能,原本我以為使用 Stroage就要以完成所有的操作了,查看了官網文檔發現,下載檔案它最終還是得使用 Response的 download方法,既然這樣那何不直接使用 Response的 download方法呢?當然前提是我已經知道檔案的絕對路徑或相對路徑。

Storage預設的路徑是在 /storage/app目錄,如果不對路徑進行設定的話,使用 Storage裡的方法擷取檔案或儲存檔案都會在這個目錄下。

可我儲存的檔案並不在這個目錄,如果有絕對路徑,那最簡單的方法就是直接使用 download方法就行了。

如果是遠程ftp的話就得使用 Storage,選設定好ftp服務然後 get下來然後傳入 Response::download()方法中,使用方法與下面類似。

return response()->download($resource['path'] . $resource['name'], $resource['original_name']);

先看看 download這個方法:

 /**  * Create a new file download response.  *   * @param  \SplFileInfo|string  $file  * @param  string  $name  * @param  array  $headers  * @param  string|null  $disposition  * @return \Symfony\Component\HttpFoundation\BinaryFileResponse  */  
public function download($file, $name = null, array $headers = [], $disposition = 'attachment');
  • 第一個是檔案的絕對路徑或檔案(必傳) \SplFileInfo 或 string類型
  • 第二個是下載後儲存的檔案名稱(選傳),如果不傳的話下載後儲存的檔案名稱將與在伺服器儲存的檔案名稱一致 string類型
  • 第二個是header(選傳) array 類型
  • 第三個是描述?這個我也沒試過,不造是啥

就這樣,下載檔案就這麼簡單,先簡單寫點吧,laravel的教程網上實在是太多了,其實我並不太想寫laravel的東西,因為並不怎麼喜歡這個架構,雖然很方便。

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.