授权symfony2中的完整文件夹。

授权symfony2中的完整文件夹。,symfony,Symfony,我正在创建一个能够为用户存储PDF的程序。 这些PDF存储在web/uploadedFiles/Uploaded/documents中 假设用户A上传了一个文档X.pdf。用户A不希望用户B能够访问此文档。现在,用户B可以键入: www.[url].com/web/uploadedFiles/uploads/documenes/x.pdf并查看该文件。 我如何确保X.pdf文件仅可供用户A查看(用户A表示可以查看该文件) 为了方便起见,我首先尝试使“文件夹”仅可供管理员访问 tl;Dr:使/we

我正在创建一个能够为用户存储PDF的程序。 这些PDF存储在web/uploadedFiles/Uploaded/documents中

假设用户A上传了一个文档X.pdf。用户A不希望用户B能够访问此文档。现在,用户B可以键入: www.[url].com/web/uploadedFiles/uploads/documenes/x.pdf并查看该文件。 我如何确保X.pdf文件仅可供用户A查看(用户A表示可以查看该文件)

为了方便起见,我首先尝试使“文件夹”仅可供管理员访问


tl;Dr:使/web/中的完整文件夹仅可供管理员访问

已经很久了,但我认为我的回答可能会有所帮助

如果必须将其保存在
web
下的任何目录中,则可以对该目录
htaccess
进行保护,这样浏览器就看不到该文件夹下的任何文件。您可以在该目录下有一个
.htaccess
文件,内容如下:

deny from all

然后,编写一个控制器路由,将您的
文件路径
/
id
作为参数,并根据登录用户决定文件的控制。如果允许用户访问该文件。您可以读取文件并强制下载。

您应该将PDF存储在
web
文件夹之外,并通过PHP访问它们。这样,您就可以完全控制访问权限。在这里看到我的答案-绝对。使用DBMS跟踪每个文件的位置并读取它们(例如,通过
文件获取内容()
),谢谢您的回答。我曾经把PDF文件放到了网络之外。但我仍然可以通过URL联系到他们。www.[somesite].com/ploadedFiles/uploads/documenets/x.pdf仍将显示pdf。一般来说,如何控制文件的访问权限?应该能够通过web访问的唯一目录应该是web文件夹。任何其他方式,你都做错事了。通过使用符号链接,可以在子文件夹中轻松实现这一点。
deny from all