【发布时间】:2019-10-19 18:55:02
【问题描述】:
我想从我的 Laravel 项目的存储文件夹中下载文件。
这是我用来下载文件的方法:
return response()->download(storage_path($path), $name);
当我单击重定向到此方法的链接时,我会从浏览器收到此输出:
Symfony\Component\HttpFoundation\File\Exception\FileNotFoundException 文件“pathToTheFile”不存在。
问题是当我访问 www.mydomain.com/pathToTheFile 时,浏览器会显示这个 txt 文件。为什么它不从链接下载文件?有人可以帮忙吗?
如果文件很重要,则使用 Voyager Admin Package 上传文件。
【问题讨论】:
-
文件保存在哪里?也许你走错了路。
-
检查磁盘上的文件,你的路径def错了。该文件很可能存储在
storage/app/public中,而您正在尝试执行storage_path(),即storage。检查文件的确切上传位置,并使用正确的路径:storage_path('app/public/FILE) -
文件保存在标准的 Laravel 存储文件夹中。正如我在将错误消息中可见的链接复制到 www.mydomain.com/COPIED-LINK 时所写的那样,该文件出现在浏览器中......所以它以某种方式存在并且路径是正确的。
-
@Raul 我试过这个解决方案,但它也不起作用。
-
www.mydomain.com/COPIED-LINK表示该文件存储在您的public文件夹中。这不在您的storage文件夹中。你可能有一个符号链接或其他东西,但如果没有,那么你需要使用public_path($file)来获取你的文件。