无法通过Controller中的响应下载存储中的文件

时间:2019-08-06 19:26:59

标签: php laravel controller routes storage

我还是Laravel的新手。我需要从刀片服务器下载文件的帮助。该文件中有两个变量,它们有助于在数据库中存储特定数据。我已经阅读了有关存储的文档,并查看了各种教程,但我完全茫然。

我创建了一个php artisan storage:link。 我的工作就是这样的: 客户端上载一个文件,该文件存储在“存储/应用程序/上传/客户端”中,然后是其用户名,然后是文件名。 示例:storage / app / upload / client / name / file_name.ext

与团队相同。 例如:storage / app / upload / team / name / file_name.ext

我希望客户端能够下载通过form_id(关系)连接的团队上传的文件,并且我希望团队能够下载客户端上传的文件。

我尝试了各种方法,直到发现它不能直接下载,因为它不在公共文件中。出于安全原因,我不想在这里使用。

一些人在另一个论坛上给我写信,并告诉我阅读文档。老实说,我觉得这仍然没有意义。我必须使用/ app / upload / client /获取存储路径,然后输入人员名称和文件名,之后将其连接到正在查看的表单。我只是不知道如何将2个变量放入控制器或路由。请有人帮我吗?我完全不知道该怎么做。

我将其作为路线

//Team Download
Route::get('team-form/file/{file}', 'TeamFormController@downloadClientFile')->name('clientDownload');

控制器方法

public function downloadClientFile($teamform) {
        $teamform = Form::where('upload');
        return response()->download(storage_path('/app/upload/client/') . '/' . $teamform->forms->users->name . '/' . $teamform );
    }

我的观点

<a href="{{ route('clientDownload', $teamform->forms->upload)}}" class="btn btn-outline-primary float-right" target="_blank"><i class="fa fa-download"></i> Download </a>

0 个答案:

没有答案