如果您想根据某种权限限制每个用户访问文件,您需要自己构建该权限逻辑(StackOverflow不会为您完成工作),但为了回答这个问题,假设您已经拥有该权限系统,并且为了检查用户是否具有访问权限,我们的功能是 hasAccessToFile 这基本上只是根据您的业务逻辑需要进行查找。
hasAccessToFile
您可以提供单个文件,而不是公开提供所有文件,这是一个非常简单的示例:
Route::get('files/{pathToFile}', function($pathToFile) { if (auth()->user()->hasAccessToFile($pathToFile)) { return response()->file($pathToFile); } else { return 'Nope, sorry bro, access denied!'; } });
见 文件响应 文档。
如果您需要提供文件的下载而不是提供它们,请执行以下操作:
Route::get('files/{pathToFile}', function($pathToFile) { if (auth()->user()->hasAccessToFile($pathToFile)) { return response()->download($pathToFile); } else { return 'Nope, sorry bro, access denied!'; } });
见 文件下载 文档。