laravel實現下載檔案
阿新 • • 發佈:2019-02-10
laravelapp\routes\web.php
Route::get('download',function(){
return response()->download(realpath(base_path('public')).'/tourist.xlsx', 'tourist.xlsx');
});
<form action="" method="post" enctype="multipart/form-data"> {{csrf_field()}} <div class="add_box"> <span onclick="downloadExcel()">模板下載</span> </div> </form>
//模板下載
function downloadExcel(){
//獲取伺服器地址
var host = location.host;
//把excel傳送出來
var url = "http://"+ host +"/admin/commodity/download";
window.open(url);
}
/* * @模板下載 */ public function download(){ return response() ->download(realpath(base_path('public')).'/goods.xlsx', 'goods.xlsx'); }
/*
* @模板下載
*/
public function download(){
return response()
->download(realpath(base_path('public')).'/goods.xlsx', "商品匯入表".'.xlsx');
}
上面的是中文的下載方式,
>download(realpath(base_path('public')).'/goods.xlsx'==============>是路徑
"商品匯入表".'.xlsx'===================>是下載後的別名
laravelapp\resources\views\email\back.blade.php
<button onclick="downloadExcel()">Download Excel</button>
<script>
function downloadExcel() {
//獲取伺服器地址
var host = location.host;
//把excel傳送出來
var url = "http://"+ host +"/download";
window.open(url);
}
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
說明:
- 請確保你提供下載的檔案存在。
- realpath(base_path('public')).'/tourist.xlsx'是一個引數,當然可以用絕對路徑如:C:\xampp\htdocs\laravelapp\public\tourist.xlsx
- base_path 提供了相對路徑的可行性,方便移植。
- 如果你遇到以下的錯誤,那麼是php有一項服務沒有開啟。
LogicException in MimeTypeGuesser.php line 135: Unable to guess the mime type as no guessers are available (Did you enable the php_fileinfo extension?)
解決:
去到php目錄下找到php.ini檔案,如C:\xampp\php\php.ini,找到 extension=php_fileinfo.dll,把前面的分號去掉,並重啟一遍伺服器,如:C:\xampp\htdocs\laravelapp>php -S localhost:100 -t public
在phpinfo頁面可以搜尋fileinfo,看到下圖,說明你成功開啟了。
phpinfo.php
phpinfo頁面可以用以下程式碼調出。Route::get('download',function(){ phpinfo(); //return response()->download(realpath(base_path('public')).'/tourist.xlsx', 'tourist.xlsx'); });
- 如果你像我一樣用chorme瀏覽器開啟下載頁面會馬上消失,推薦換個瀏覽器試試,如火狐,我便是用火狐成功的。
- 如果你調出這個頁面,恭喜你成功了!
下載頁面
參考:http://www.jianshu.com/p/e4f2770971ce