2016-09-16 125 views
1

我試圖用laravel下載一個文件。我看到了很多的例子,展示了頭陣的事情鏈接內容類型/大小等什麼是http標題,什麼時候需要指定它們

我的問題是什麼是這些標題和做時,我需要把它們設置

樣品我的代碼:

$file_path = public_path() . 'path/to/file' . $file_name; 

     if (file_exists($file_path)) { 
      return response()->download($file_path, $file_name); 
     } 

這適用於我。但我見過一些例子添加了一個標題數組作爲第三個參數,我很想知道它的用法。

感謝

+1

您是否嘗試過谷歌關於這個問題的?標題可以用於很多不同的事情,並且有很多深入的教程等等。只需搜索:「什麼是HTTP頭」,然後檢查PHP的手冊有關[header()](http://php.net/manual/en/function.header.php)函數。 –

+0

數據類型,以便服務器知道要展示什麼,可以說JSON,XML等...應用程序/文本...您應該在REST風格的Web服務中使用它 您應該谷歌它,這是一個很大的主題。 .. –

回答

0

HTTP頭提供有關的額外信息的網頁瀏覽器的返回它從請求中獲得的響應。在你的情況下,Content-type標題爲瀏覽器提供了關於,是否相信,服務器返回的內容類型的信息。通過指定Content-type: application/pdf,您的瀏覽器將知道它必須使用Adobe Reader插件來顯示服務器返回的內容。你可以找到關於HTTP頭的詳細信息in this Wikipedia article.

您可以使用HTTP響應頭在你這樣的Laravel應用:

return new \Illuminate\Http\Response(file_path, 200, [ 
      'Content-type' => 'application/pdf', 
      'Content-Disposition' => 'attachment; filename=' . $file_name, 
]); 
+0

你複製我的答案代碼,並忘記修復我在file_path中做出的錯誤hahaha – jycr753

0

事情是這樣的:

return new \Illuminate\Http\Response($file_path, 200, [ 
      'Content-type' => 'application/pdf', 
      'Content-Disposition' => 'attachment; filename=' . $file_name, 
     ]); 

這樣我們通過正確的頭和響應將處理客戶端

相關問題