Php Laravel如何使下载链接仅用于验证用户?

Php Laravel如何使下载链接仅用于验证用户?,php,laravel,laravel-5,Php,Laravel,Laravel 5,我在公共目录文件夹中有一些文件。我想向用户发送一个特定文件的链接。现在我通过以下方式提供链接 <a href="{{asset('files/'.$row->file_path)}}"> <button class="btn btn-success">Download</button> </a> 哪个用户知道我的目录在哪里..我可以使下载链接只有经过身份验证的用户才能下载文件,或者我可以从url隐藏目录吗?首先,将所有文件从公共

我在公共目录文件夹中有一些文件。我想向用户发送一个特定文件的链接。现在我通过以下方式提供链接

<a href="{{asset('files/'.$row->file_path)}}">
    <button class="btn btn-success">Download</button>
</a>


哪个用户知道我的目录在哪里..我可以使下载链接只有经过身份验证的用户才能下载文件,或者我可以从url隐藏目录吗?

首先,将所有文件从公共可访问目录移动到私有目录,例如,移动到
存储路径('private/')
文件夹

其次,创建一个方法,该方法将以任何方式从URL接收文件名(从查询中解码文件名,或通过id从数据库加载文件名),进行授权/一些其他检查,如果没有问题,则将其提供给客户端下载。 这可以按如下方式完成:
returnresponse()->download($pathToFile)


然后,不要使用带有文件直接链接的
asset()
,而是为用户提供一个指向执行所创建方法的路由的链接。

您可以将文件放在存储目录中,并通过控制器管理下载…是否有示例代码了解此结构并对其进行测试?