在Laravel视图中获取clientOriginalName

在Laravel视图中获取clientOriginalName,laravel,Laravel,我有一个Laravel视图,其中用户上载多个文件。我的控制器接收这些文件并将它们放在公共/存储中的文件夹中。文件名是客户端的原始文件名,我试图让视图动态显示该原始文件名(而不是临时路径),然后链接到该文件。我有以下代码: <a class='col-6' href="/download/{{ $plansubmission->id }}/{{$plansubmission->current_plan_year_claims_data_file_1 }}">{{ $plan

我有一个Laravel视图,其中用户上载多个文件。我的控制器接收这些文件并将它们放在公共/存储中的文件夹中。文件名是客户端的原始文件名,我试图让视图动态显示该原始文件名(而不是临时路径),然后链接到该文件。我有以下代码:

<a class='col-6' href="/download/{{ $plansubmission->id }}/{{$plansubmission->current_plan_year_claims_data_file_1 }}">{{ $plansubmission->current_plan_year_claims_data_file_1 }}</a> 
下载控制器:

class DownloadsController extends Controller
{      
    public function getDownload($folder, $id){
        //PDF file is stored under project/public/download/info.pdf
        $pathToFile=public_path(). "\storage\\$folder\\$id";
        // return Response::download($file);
        return response()->file($pathToFile);
    }
}

我可以在URL中键入正确的路径,下载就可以了。但是,视图中的链接不存在,因为它链接到本地文件存储。

如果向路由添加名称,则类似以下内容:

路由::get('/download/{folder}/{id}','DownloadsController@getDownload')->name('pdfDownload')

然后在视图中,您可以像这样调用
route()

route('pdfDownload', [$plansubmission->id, $plansubmission->current_plan_year_claims_data_file_1]);
这将自动将值绑定到路由和url


更多信息。我希望这有帮助

谢谢,我可能应该这样做。但是,我遇到的问题是,我的文件被保存为原始客户端名称(即TestFile.pdf),当我返回$plansubmission->current\u plan\u year\u claims\u data\u file\u 1时,它只会给我一个文件路径,如C:\xampp\tmp\phpE05A.tmp。因此,我无法链接到该文件,因为我无法获取URL的正确文件名。当您存储文件并保存记录时,您需要在存储后获取新文件名,而不是临时位置名谢谢。我只是不太确定该怎么做。下面是我保存文件的方式:Storage::disk('local')->putFileAs($folder,$file,$file->getClientOriginalName());您在数据库中保存了什么?听起来您正在保存
$file
,这将为您提供临时文件路径。。。编辑您的问题并提供该控制器方法
route('pdfDownload', [$plansubmission->id, $plansubmission->current_plan_year_claims_data_file_1]);