使用 Laravel 高效下載檔案:使用 Response::Download
嘗試在 Laravel 應用程式中啟用檔案下載時遇到問題?本文將引導您解決常見問題,例如文件存在錯誤和不需要的頁面導航。
問題 1:檔案有錯誤
指定的檔案路徑getDownload() 方法不正確。應用程式無法在 public/download/info.pdf 中找到該檔案。相反,請嘗試使用以下內容:
<code class="php">$file= public_path(). "/download/info.pdf";</code>
這提供了文件的完整實體路徑。
問題2:頁面導航
至防止下載將使用者導航至新視圖,請修改在視圖中新增下列標籤:
<code class="html"><a href="#" class="btn btn-large pull-right" onclick="downloadFile()"><i class="icon-download-alt"></i> Download Brochure</a></code>
然後,將以下JavaScript 函數新增至您的檢視:
<code class="javascript">function downloadFile() { window.location.href = "/download"; }</code>
這將呼叫getDownload() 操作,而無需重新載入頁面。
更新了 Laravel 5 及更高版本的回應
Laravel 版本 5 及更高版本為 Response 外觀引入了新語法。使用以下程式碼而不是原始答案中提供的程式碼:
<code class="php">$headers = [ 'Content-Type' => 'application/pdf', ]; return response()->download($file, 'filename.pdf', $headers);</code>
結論
透過實作這些更改,您將擁有一個功能檔下載按鈕無縫下載文件,無需導航到其他頁面。
以上是如何在 Laravel 中高效下載檔案:常見問題排查指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!