Laravel 5.2 - 从数据库下载文件

时间:2016-12-10 02:22:20

标签: php database laravel file-upload laravel-5.2

这些就是我所拥有的:

名为lamanInformasi的数据库表,其中包含以下字段:id,judul,isi,created_at,updated_at。

这就是我想要的:

用户可以上传文件,文件将存储到数据库中。文件名将保存到isi字段,文件本身将保存到名为propic的文件夹中。我已经正确完成了所有这些工作。然后,我有一个问题。显示数据库中的数据时,每个文件名中都有链接。当用户单击该链接时,将自动下载该文件。如何使它成为可能?当我点击该链接时,出现此错误:NotFoundHttpException

这些是我的代码:

index.blade.php - 我把这个文件放在上传文件夹

<table class="table table-striped table-bordered" border= "1px solid black">
    <thead>
        <tr>
            <td>ID</td>
            <td>Judul</td>
            <td>Isi</td>
            <td>Created At</td>
            <td>Updated At</td>
        </tr>
    </thead>
    <tbody>
        @foreach($lamanInformasi as $file)
        <tr>
             <td>{{$file->id}}</td>
             <td>{{$file->judul}}</td>
             <td><a href="{{URL::to('upload/' . $file->id)}}">{{$file->isi}}</a></td>
             <td>{{$file->created_at}}</td>
             <td>{{$file->updated_at}}</td>
        </tr>
        @endforeach
    </tbody>
</table>

LamanInformasiController

public function show($id)
{
    $lamanInformasi = $this->model->whereId($id)->firstOrFail();
    $downloadFile = response()->download($lamanInformasi->filepath, $lamanInformasi->name);
    return view('upload.index', compact('lamanInformasi','downloadFile'));
}

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

&#39; NotFoundHttpException&#39;意味着Laravel无法找到满足请求的路线。所以试试吧

$scope.updateCar = function () {
                firebase.database().ref('users/' + $scope.user + '/cars/' +         $scope.key).set({
                   year:  $scope.data.year,
                   make:    $scope.data.make,
                   model:  $scope.data.model

                });

在控制器上

 <td><a href="{{URL::to('upload')}}/{{ $file->id}}">{{$file->isi}}</a></td>

答案 1 :(得分:0)

只需使用download={{$report->name}}

download={{$report->name}} - 它会使下载文件名为 download =&#34; filename&#34; , &#34;的文件名&#34;成为下载文件的名称。并强制下载和href告诉文件在哪里

控制器

中的

  public function download()
     {
        //display all types of reports from database name downloads

        $reports = DB::table('downloads')->all();  
       return view('reports.proposal',compact('reports'));
     }

和我的查看以及下载链接就像这样

@foreach($reports as $report)

             <a href="../backend/uploads/{{$report->name}}" download="{{$report->name}}">{{$report->name}}</a>

@endforeach

youtube链接https://www.youtube.com/watch?v=AlnackyPJPY

gitlab链接https://gitlab.com/Bons/download-files-laravel5