我正在使用Storage :: url()函数为存储目录中的文件生成下载链接,我还将存储目录链接到公共目录,并且一切正常。
但是,现在任何人都可以下载文件而无需任何身份验证。在无需重新编写控制器内部的下载逻辑的情况下,保护以/ storage / .....开头的所有路由的正确方法是什么?
答案 0 :(得分:0)
您必须将下载URL添加为route.php文件中的路由:
Route::get('downloads/{file}','MyController@download')->where('file', '^[^/]+$')->middleware('auth');
当然,不要忘记检查文件是否存在,之后您可以使用
$reponse()->download()
返回下载响应。该方法具有3个参数:文件路径,文件名和HTTP响应标头。
有关更多详细信息,请检查此: