如何使用文件下载功能?

官方文档

下载文件
download 方法可用于生成一个响应,强制用户的浏览器在给定路径下载文件。 download 方法接受一个文件名作为该方法的第二个参数,它将确定用户下载文件时看到的文件名。最后,你可以传递一个 HTTP 数组头作为该方法的第三个参数:

return Storage::download('file.jpg');

return Storage::download('file.jpg', $name, $headers);

首先创建个路由

Route::get('/download','UsersController@download')->name('download');

控制器

 public function download(User $user)
    {
         return Storage::download(Auth::user()->download);
    }

模板中

        <a href="{{route('download')}}" class="btn btn-large pull-right">
            <i class="btn btn-success">下载按钮 </i>
        </a>

users表中有个download字段存储一个图片的路径。
点击模板中下载链接提示!

League\Flysystem\FileNotFoundException
File not found at path: avatars/THw8h6IY9H00lGTrWFEQXjyLMwLMB0WFjU9iCNq7.jpeg
http://127.0.0.1/laravel/public/download

‘http:/127.0.0.1/laravel/public/storage/avatars/THw8h6IY9H00lGTrWFEQXjyLMwLMB0WFjU9iCNq7.jpeg’这个地址可以正常显示图片!请问哪里出了问题!难道我理解官方文档错误了吗?

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 2

浏览器显示用的图片地址是 http 协议的 url,类似 http://domain.com/pics/xxx.jpg,,,下载用的图片地址是,,,系统的文件地址,,类似,,,c:\code\public\pics\xxx.jpg 或者 /www/code/public/pics/xxx.jpg

4年前 评论
李小明 (楼主) 4年前
largezhou (作者) 4年前
李小明 (楼主) 4年前

return Storage::disk('public')->download(Auth::user()->download,Auth::user()->name); 测试ok~@largezhou

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!