Laravel - 链接到保存在存储文件夹中的文件

时间:2016-12-02 16:02:58

标签: laravel laravel-5.3

当我们做这样的事情时:

Storage::disk('local')->put('file.txt', 'Contents');

如何在视图中链接到该文件?像这样:

<a href="path_to_file.txt">Download File</a>

文档中有很多内容,但是如何创建指向该文件的链接甚至没有一个例子

3 个答案:

答案 0 :(得分:4)

在您的终端上尝试此命令: php artisan storage:link ,然后laravel存储成为公共访问。

<a href="{{url('/')}}/{{ Storage::disk('local')->url('file.txt')}}">Download File</a>

答案 1 :(得分:2)

<强>更新

根据laravel docs,您可以像这样获取文件的URL:

use Illuminate\Support\Facades\Storage;

$url = Storage::url('file1.jpg');
  

请记住,如果您使用的是本地驱动程序,那么应该是所有文件   可公开访问的内容应放在storage/app/public中   目录。此外,您应该在。创建一个符号链接   public/storage指向storage/app/public目录。

希望这有帮助!

答案 2 :(得分:1)

场景 - (从新的Laravel 5.6项目安装工作以供参考): 现有的默认路径为/ public和/ storage / app / public,并且您希望将logo.png图像物理存储在/ storage文件夹中并在欢迎页面上呈现它,过程将如下所示:

  1. 在终端中,导航至Laravel项目文件夹。
  2. 运行命令php artisan storage:link
  3. 现在在/ storage / app / public文件夹中创建文件夹/ images,它会为您提供/ storage / app / public / images。
  4. 查看您的/ public文件夹,您将看到(快捷方式)子文件夹/ storage / images
  5. 将名为logo.png的测试图像复制到/ storage / app / public / images文件夹中。
  6. 在您的项目的welcome.blade.php下,在/ resources / views下粘贴    以下代码通过现有代码:

    <div class="content">
        <div class="title m-b-md">
            Laravel
            <div>
                <a href="/">
                  <img src="{{url('/storage/images/logo.png')}}" alt="Logo Image"/>
                </a>
            </div>
        </div>
    </div>
    
  7. 在浏览器中保存并打开项目,您应该会看到徽标图像。

  8. 说完所有这些后,您需要一个pdf文件夹来存储上传的pdf 文件。简单,只需在/ storage / app / public中创建一个名为/ pdf和的新文件夹 自动快捷方式将出现在/ public文件夹中。对于所有人来说,这是一次性的,并且是#34;溶液