只有Laravel中特定用户可访问的文件?

时间:2017-04-28 05:28:32

标签: php laravel

在我的网站上,用户可以相互之间一对一地发送文件。

但是,我希望这些文件只能由他们访问。换句话说,我不希望这些文件最终出现在公共路径中。

在这种情况下,我有一个名为" comm_uploads"的表。在此表中,您有文件路径,发送ID和接收方ID。

我还有一个页面,列出了两者之间发送的所有文件。

在此页面上,您有类似......

的内容
@foreach ($uploads as $upload) 
    <div><a href="LINK TO PRIVATE FILE PATH">{{ $upload->file_name }}</a></div> 
@endforeach

我怎么能这样做才能让那两个用户只能查看这些文件?

1 个答案:

答案 0 :(得分:0)

您可以使用路径,而不是在Anchor中使用直接路径,在控制器中,您可以编写要检查文件是否允许访问的逻辑,并根据该路径返回Unauthorized Error(错误代码) 401)或者你可以简单地做return response()->download($pathToFile);

例如

if (fileAllowedToAccess()) {
    return response()->download($pathToFile);
} else {
    return abort(401);
}