我一直在为这件事转来转go .我有上传工作与以下工作:

public function store(Tool $tool)
{

     If(Input::hasFile('file')){
        $file = Input::file('file');
        $name = $file->getClientOriginalName();
        $path=Storage::put('public',$file);         //Storage::disk('local')->put($name,$file,'public');

        $file = new File;
        $file->tool_id = $tool->id;
        $file->file_name = $name;
        $file->path_to_file = $path;
        $file->name_on_disk = basename($path);
        $file->user_name = \Auth::user()->name;
        $file->save();

        return back();
    }

但是,当我try 下载时:

public function show($filename)
    {   

        $url = Storage::disk('public')->url($filename);

        ///$file = Storage::disk('public')->get($filename);
        return response()->download($url);
    }

我从laravel那里得到了FileNotFound异常

$file = Storage::disk('public')->get($filename);
return response()->download($file);

我明白了

FileNotFoundException in File.php line 37: The file "use calib;

插入

这就是文件的实际内容...

它显然能找到文件.但为什么不下载呢?

推荐答案

试试这个:

return response()->download(storage_path("app/public/{$filename}"));

Laravel相关问答推荐

Laravel FAKER语法

Laravel:通过数据透视表数据限制多对多Eager 加载

自定义验证在表单请求上始终返回 true laravel

为什么我的 Laravel 开发服务器不提供 public 文件夹下的文件?

Laravel 获取具有多对多关系的中间表数据

如何访问 Validator::extend 中的其他输入属性?

Laravel Eloquent,仅 Select 存在关系的行

Laravel 5 如何全局设置 Cache-Control HTTP 标头?

Laravel - 超过 PHP 最大上传大小限制时验证文件大小

PHP 5.5,什么情况下PHP会导致很高的committed memory

Laravel 5.4 - 注册后禁用自动登录

Cookie::forget 不工作 laravel 5.1

调用未定义的方法 Maatwebsite\Excel\Excel::load()

Laravel 迁移 - 删除列

Class类 App\Http\Controllers\Auth\Request 不存在.

Laravel 验证:数字和整数之间的区别?

laravel 如何读取 app/config/app.php 调试变量

在 Laravel 中包含 bootstrap 程序

如果在 Laravel 5.1 中找不到路由,则显示 404 页面

Laravel 如何在 Eloquent 模型中添加自定义函数?