【问题标题】:How to download file from storage app folder in Laravel 8如何从 Laravel 8 中的存储应用程序文件夹下载文件
【发布时间】:2022-01-05 14:27:26
【问题描述】:

我想从 Storage/app/public 文件夹下载一个文件。

不知何故,如果没有任何错误消息,它就无法工作。

下面是我试过的代码。

web.php

Route::get('/viewAllFile',[DownloadController::class, 'downfunc']);
Route::post('download/{id}',[DownloadController::class, 'download']);

下载控制器.php

class DownloadController extends Controller
{
    public function downfunc()
    {
        $downloads = DB::table('files')->get();
        return view('download.viewfile', compact('downloads'));
    }

    public function download($file_name)
    {
        //Storage::disk('local')->put('example.txt', 'Contents');
        $file = Storage::disk('public')->get($file_name);
        $filepath = storage_path("app/{$data->file}");
        
        return \Response::download($filepath);
    }
}

viewfile.blade.php

@foreach($downloads as $down)
    <tr>
        <td>{{$down -> name}}</td>
        <td>{{$down -> directory}}</td>
        <td>{{$down -> updated_at}}</td>
        <td>
            <a href="{{url('/download/'.$down->name)}}" download="{{$down-> name}}">
                <button type="button" class="btn btn-primary">Download</button>
            </a>
        </td>
    </tr>
@endforeach

【问题讨论】:

  • 所有可下载的文件都在storage/app/public 目录的根目录下还是有些嵌套?
  • 都保存在storage/app/public/hi目录下

标签: laravel-8 laravel-storage


【解决方案1】:

首先,您必须运行以下命令:

php artisan storage:link

例如:

Route::get('/download', function (){
    return Storage::download('public/file_name.png');
});

You can find documentation here

【讨论】:

    猜你喜欢
    • 2021-08-26
    • 1970-01-01
    • 2017-09-05
    • 1970-01-01
    • 2021-10-29
    • 1970-01-01
    • 1970-01-01
    • 2022-11-19
    • 2015-05-20
    相关资源
    最近更新 更多