首页 > 解决方案 > Laravel 文件隐私

问题描述

我有一个应用程序,用户可以在应用程序内注册,他们可以上传自己的文件。

我的问题是,如何以这种方式为文件添加隐私,未经身份验证无法访问文件,每个用户只能访问自己的文件

标签: phplaravel

解决方案


这里的答案取决于这一切需要有多安全。

您可以在上传文件时为其生成一个长而随机的文件名。这些很难猜到——就像一个相当强的密码——而且在大多数情况下都能解决问题。

如果您使用以下方法,Laravel 实际上会本机执行此操作store()

$path = $request->file('avatar')->store('avatars');

如果您需要更多的安全性,您可以将上传的文件存储在非公开的地方。然后,添加一个路由(如download/{id}),让该路由检查用户对相关文件的权限,并在获得授权的情况下将文件提供给浏览器:

return Storage::download('path/to/the.file');

Storage::download通过 Laravel 代理文件,因此这甚至适用于未存储在公用文件夹中的文件。


推荐阅读