0

我想创建一个超链接来下载我的 storage/app/public 文件夹中的文件。我在刀片中使用它

<a href="{{ asset('storage/app/public/1489082996.docx') }}" download="{{ asset('storage/app/public/1489082996.docx') }}"> Read Paper</a>

但这告诉我找不到错误文件。我该怎么做是我的 filesystem.php

'disks' => [

        'local' => [
            'driver' => 'local',
            'root' => storage_path('app'),
        ],

        'public' => [
            'driver' => 'local',
            'root' => storage_path('app/public'),
            'visibility' => 'public',
        ],
4

2 回答 2

3

一种简单的方法,允许您将文件存储在存储文件夹中并允许在不更改系统的情况下下载:(在 laravel 5.3 中)

您可以建立一个正常的文件链接:

<a href="/download/1489082996.docx"> Read Paper</a>

然后你需要配置你的 routes/web.php

Route::get('/download/{file}', function ($file='') {
    return response()->download(storage_path('app/public/'.$file)); 
});

这应该会打开所有类型文件的下载对话框,也适用于 img 和 pdf。如果你想在线显示文件而不是下载你应该使用文件方法:

return response()->file(storage_path('app/public/'.$file));
于 2017-08-17T21:19:30.427 回答
0

资产路径是相对于/public目录的。所以你只想asset('1489082996.docx')假设你已经正确地将你的存储目录与php artisan storage:link.

于 2017-03-09T19:20:50.517 回答