我有这样的结构:laravel/storage/app/public/images/id_of_user/
其中user的id是用户的id。
这是我的中间件:
public function handle($request, Closure $next)
{
if($request->user_id == Auth::user()->id{
return $next($request);
}
return back();
}
并制定了这样的路线:
Route::group(['middleware' => 'storagemiddleware'], function () {
Route::get('storage/images/{$user_id});
});
这不起作用。每个人仍然可以访问每个人的图像。老实说我没想到这个有用,因为它看起来存储有自己特殊的路径和设置。
我想要的是只允许用户在其存储空间中查看其文件夹的内容。
有什么建议吗?
答案 0 :(得分:0)
仔细阅读文档的这一部分:https://laravel.com/docs/5.4/filesystem。
如果想要让文件只对您拥有的文件可访问,那么您希望将它们放在存储目录中的某个位置,然后通过控制器访问它们。公共目录中的任何内容都是公开的。
您可以设置一个像API_KEY
这样的目录结构来保持分离,然后从路由和指定的参数中检索它们。