在laravel中下载文件错误

时间:2018-01-25 07:05:08

标签: php laravel

我使用本地存储来存储文件。我创建了一个文件表,其中存储了 title,path,card_id 行。

$request->file('file')->storeAs('public/upload',$files->getClientOriginalName());

passport.png 存储于 /home/dhruv/MyProject/storage/app/public/upload/passport.png

以上工作正常,但我在下载文件时遇到错误。 在控制器......

    public function getDownload($file_id)
    {

        $file = File::find($file_id);
        //print_r($file);    
            return response()->download($file->path);
             /*  return response()->download(
                $file->path,
                    $file->name,
                    [],
                    'inline'//attachment
                );*/

    }

我尝试了很多下载方法,但是没有任何方法可以正常工作。 我收到了这个错误。

  

的Symfony \元器件\ HttpFoundation \文件\异常\ FileNotFoundException异常:   文件   " /home/dhruv/MyProject/storage/public/upload/passport.png"   在文件中不存在   /home/dhruv/MyProject/vendor/symfony/http-foundation/File/File.php on   第37行

我不知道为什么它会搜索 /home/dhruv/MyProject/vendor/symfony/http-foundation/File/File.php ,因为我已插入正确的路径。

建议任何下载方法..

1 个答案:

答案 0 :(得分:0)

return response()->download(Storage::get($file->path));

之前导入:
use Illuminate\Support\Facades\Storage;

Laravel Storage

或试试这个:
return response()->download(storage_path($file->path));