2015-10-19 251 views
3

我無法從存儲器下載文件。 Firebug的控制檯顯示File.php線41從Laravel的存儲器下載文件

FileNotFoundException異常:文件 「C:\ XAMPP \ htdocs中\ CT \存儲/ 30e9734e1f06bf751da5b3289994fb3f/34.pdf」 不存在

但文件存在於C:\xampp\htdocs\ct\storage\userdata\30e9734e1f06bf751da5b3289994fb3f文件夾中。我認爲我在代碼中提到的文件路徑不正確。請幫我解決這個問題。

filesystems.php

'root' => storage_path('userdata'), 

DownloadController.php

public function show(TagambitionRequest $request) 
     { 
      $details    = User::select('id', 'created_at')->findOrFail(Auth::user()->id); 
      $encrypt    = md5($details->id.$details->created_at); 
      $directories   = Storage::files($encrypt);            // Listout Files 
      foreach($directories as $values) 
      { 
       $split_folder_file = explode('/', $values);   //60e4dda43c442fe610bdbd4a0e5c3a12/19.pdf 
       $splitted_file  = end($split_folder_file);   //19.pdf 
       $explode_filename = explode('.', $splitted_file); //explode(19.pdf) 
       $explode_name  = $explode_filename[0];   //19 
       $file_extension = $explode_filename[1];   //pdf 
       if ($file_extension == 'pdf') { 
        $path = storage_path().'/'.$encrypt.'/'.$splitted_file; 
        return response()->download($path, $splitted_file, ['Content-Type' => 'application/pdf']); 
       } 
      } 
} 
+0

你似乎是一個Windows的計算機上 - 那麼你正在使用的錯誤類型的斜槓,請檢查您的錯誤消息。 在Laravel,Flysystem是默認集成的,請檢查文檔(http://laravel.com/docs/5.1/filesystem)強烈建議,而不是構建自己的解決方案。 – Marcus

+2

即使在混合時,Windows也可以處理斜槓和反斜槓。所以這不是錯誤。當你在Windows資源管理器中通過路徑時會發生什麼? – mimo

回答

0

你已經錯過了userdata文件夾中的路徑,所以你需要改變

$path = storage_path().'/'.$encrypt.'/'.$splitted_file;

$path = storage_path().'/userdata/'.$encrypt.'/'.$splitted_file;

+0

非常感謝你的糾正我 –