2015-10-19 253 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

非常感谢你的纠正我 –