在我的网站上,用户可以相互之间一对一地发送文件。
但是,我希望这些文件只能由他们访问。换句话说,我不希望这些文件最终出现在公共路径中。
在这种情况下,我有一个名为" comm_uploads"的表。在此表中,您有文件路径,发送ID和接收方ID。
我还有一个页面,列出了两者之间发送的所有文件。
在此页面上,您有类似......
的内容@foreach ($uploads as $upload)
<div><a href="LINK TO PRIVATE FILE PATH">{{ $upload->file_name }}</a></div>
@endforeach
我怎么能这样做才能让那两个用户只能查看这些文件?
答案 0 :(得分:0)
您可以使用路径,而不是在Anchor中使用直接路径,在控制器中,您可以编写要检查文件是否允许访问的逻辑,并根据该路径返回Unauthorized Error(错误代码) 401)或者你可以简单地做return response()->download($pathToFile);
例如
if (fileAllowedToAccess()) {
return response()->download($pathToFile);
} else {
return abort(401);
}