首页 > 解决方案 > Laraver 问题在刀片视图中显示存储文件的 URL

问题描述

我有一个 Laravel API 来将文件存储在 Laravel 本地。 File_path/app/Files/{id_message}/。变量id_messagefile_path存储在数据库表中files

当我上传文件时,我遇到了这种情况:

桌子files

id    id_message    file_path
1     000001        /app/Files/000001/w2YANqYe82itnLSsIa.zip

我不知道如何在刀片视图中显示以供下载:

<td><a href ="{{ asset ('app/Files/'.$id_message.'/'.$file_name) }}">Download</a></td>    

老实说,我浏览了网上可用的资料,但我不知道该怎么做

我会很高兴得到任何帮助。

function fileUpload(Request $request)
{
    $request->validate([
        'id_message' => 'required|min:6'
    ]);
    
    $idParameter = $request->id_message=$request->id_message;

    $result=$request->file('file_path')->store('Files/'.$idParameter);
    
    $file = new File;
    $file->id_message=$idParameter;
    $file->file_path=$result;
    $file->save();
}

filesystems.php

'disks' => [
        'private' => [
        'driver' => 'local',
        'root' => storage_path('app/Files'),
    ],

标签: phpdatabaselaravellaravel-blade

解决方案


s 你通过store()方法存储文件,这样你就可以通过Storage::url()

<td><a href ="{{ Storage::url('app/Files/'.$id_message.'/'.$file_name) }}">Download</a></td>   

像这样

参考链接https://laravel.com/docs/8.x/filesystem#file-urls

注意: - 如果驱动程序是公开的,它将起作用


推荐阅读