Laravel 5.3 保护下载文件的正确方法

Posted

技术标签:

【中文标题】Laravel 5.3 保护下载文件的正确方法【英文标题】:Laravel 5.3 proper way to secure files for download 【发布时间】:2016-09-30 15:56:23 【问题描述】:

我需要从我的 Laravel 应用程序下载文件。可以为授权用户进行下载。我不想把这些文件放在公共目录中。

return response()->download('/storage/app/export/file.txt');

我在控制器中使用此响应来下载文件,但我不知道如何引用文件名/路径。

我的文件位于 storage/app/export/file.txt。但我看到下载方法假设根是 storage/app/public(链接到 public/storage/)。

如何从非公共磁盘下载文件?

【问题讨论】:

【参考方案1】:

只需像这样传递完整路径:

return response()->download(storage_path('app/export/file.txt'));

【讨论】:

以上是关于Laravel 5.3 保护下载文件的正确方法的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5.3,MySQL,迁移中正确的外键设置(一对多,多对多)

Laravel 5.2 或 5.3:如何正确实施检查会话是不是已登录

安装 laravel 依赖的问题

如何正确删除 Laravel 5.3 中用户表列中的“唯一”列属性?

Laravel 5.3 + Passport:总是未经身份验证的错误

Laravel 5.3 PHP Artisan 不工作 PHP 警告:需要(bootstrap/../vendor/autoload.php)