Php 只有Laravel中的特定用户才能访问文件?

Php 只有Laravel中的特定用户才能访问文件?,php,laravel,Php,Laravel,在我的网站上,用户可以一对一地在彼此之间发送文件 但是,我希望这些文件只能由他们访问。换句话说,我不希望这些文件以公共路径结束 在本例中,我有一个名为“comm_uploads”的表。在此表中,您有文件路径、发送id和接收方id 我还有一个页面,上面列出了在两者之间发送的所有文件 在这一页上,你会看到类似于 @foreach ($uploads as $upload) <div><a href="LINK TO PRIVATE FILE PATH">{{ $up

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

但是,我希望这些文件只能由他们访问。换句话说,我不希望这些文件以公共路径结束

在本例中,我有一个名为“comm_uploads”的表。在此表中,您有文件路径、发送id和接收方id

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

在这一页上,你会看到类似于

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

我如何才能做到这一点,使这些文件只能由这两个用户查看?

您可以使用一个路由,在控制器中,您可以写入您想要检查文件是否允许访问的逻辑,并基于此,您可以返回未经授权的错误(错误代码401)或者您可以简单地执行
returnresponse()->下载($pathToFile)

例如


你想把它们藏在视野中吗???或者其他人可以查看但限制下载???啊。我明白你的意思了。但是,检索文件时遇到问题。例如,错误:“uploads/artistUploads/2/2/c/Azoruk/149335445_3Yf358A.png”不存在。如果文件位于存储目录中,则可以执行
存储路径('/uploads/artistUploads/2/c/Azoruk/149335445_3Yf358A.png')
如果文件位于公共目录中,则可以执行
公共路径('/uploads/artistUploads/2/2/c/Azoruk/149335445_3Yf358A.png')
checkout-laravel-path-helpers
if (fileAllowedToAccess()) {
    return response()->download($pathToFile);
} else {
    return abort(401);
}