如何打开存储在 laravel 的存储文件夹中的文件?

How to open file stored in stoarge folder in laravel?

我正在尝试打开存储在“storage/app/public/cca_license/pdf_upload”文件夹中的文件。当我尝试打开文件时,内容是空的。
我试过的是

account.blade.php

 <table id="table" class="table table-bordered text-center">
            <thead>
                <tr>
                    <th>PDF Name </th>
                    <th>Date</th>
                   
                    <th>View</th><!-- comment -->
                    <th>Delete</th>
                </tr>
            </thead>
            <tbody>
                @if(count($pdf_data)> 0)
                @foreach($pdf_data as $data)
            <tr>
                <td>{{$data->pdf_name}}</td>
                <td>{{$data->pdf_date}}</td>
                <td>
                    <a href="/openPdf/{{$data->pdf_name}}"><i class="fa fa-eye"></i></a>
                   <!-- <iframe id="ifrm" src="/cca_license/pdf_upload/txtfile-converted_1640170538.pdf" >
                   </iframe>-->
                  </td>
                  <td><a href="/deleteFile/{{$data->id}}"><i class="fa fa-remove"></i> </a></td>
            </tr>
            @endforeach
            
           @else
           <tr><td colspan="4">No Pdf Listings</td></tr>
            @endif
            </tbody>
        </table>

web.php

Route::get('/openPdf/{name}', 'HomeController@openPdf');

HomeController.php

public 函数 openPdf($name) {

    $contents=asset('cca_license/pdf_upload/'. $name);
  
}

当我尝试打开一个文件时,我看到没有文件内容的空白页面。

如何在浏览器中查看内容和文件。

您的代码不包含任何 return 语句。 Laravel 提供多种回复方式。

https://laravel.com/docs/8.x/responses

例如,文件响应。

public function openPdf($name) 
{
    return response()->file(storage_path('app/public/cca_license/pdf_upload/'. $name));
}

asset() 助手 return 是 URL。如果文件存储在本地,则应引用本地路径。