首頁 > 後端開發 > php教程 > Laravel框架實作檔案下載功能的範例程式碼

Laravel框架實作檔案下載功能的範例程式碼

黄舟
發布: 2023-03-16 07:44:02
原創
2864 人瀏覽過

本文重點介紹Laravel實作檔案下載功能的實例程式碼,需要的朋友參考下吧

Laravel 的上一個LTS(長期支援)版本是Laravel 5.1,發佈於2015 年6 月,依照LTS 版本的約定,兩年的bug 修復支援到今年中旬就結束了,所以今年中旬必然要出一個LTS 後繼版本,就是Laravel 5.5。本文重點介紹Laravel實作檔案下載功能的實作方法,大家參考下本文吧

download 方法可以用來產生強制讓使用者的瀏覽器下載指定路徑檔案的回應。 download 方法接受檔案名稱作為方法的第二個參數,此名稱為使用者下載檔案時所看見的檔案名稱。最後,你可以傳遞一個包含 HTTP 頭資訊的陣列作為第三個參數傳入該方法:


#
return response()->download($pathToFile);
return response()->download($pathToFile, $name, $headers);
登入後複製

以下是自己在專案裡使用的檔案下載功能。


public function downloadfile($filename)
  {
    $file = public_path().'/test.xls';
    return response()->download($file,$filename.'.xls');
  }
登入後複製

但是呢,剛開始進展不是很順利,為什麼使用laravel自帶的檔案下載功能會失敗能,錯誤如下提示:


FatalErrorException in HandleCors.php line 18:
Call to undefined method Symfony\Component\HttpFoundation\BinaryFileResponse::header()
登入後複製

大概的意思是說,header()方法沒有被定義,經過各種摸索後找到了解決方案,我們可以重新定義一下header,在CorsMiddleware的handle方法中添加如下方法:


class CorsMiddleware
{
  public function handle($request, Closure $next)
  {
    $response = $next($request);
    $response->headers->set('Access-Control-Allow-Origin' , '*');
    $response->headers->set('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT, DELETE');
    $response->headers->set('Access-Control-Allow-Headers', 'Content-Type, Accept, Authorization, X-Requested-With, Application');
    return $response;
  }
}
登入後複製

最後,再重新定義header之後,我們再使用download功能後發現能正常存取。

總結

#

以上是Laravel框架實作檔案下載功能的範例程式碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板