php&;mySQL:存储文档、xls、zip等,访问和归档受限

php&;mySQL:存储文档、xls、zip等,访问和归档受限,php,mysql,file,Php,Mysql,File,在我的应用程序中,我为用户上传文件(如doc、xls、zip等)做了一个规定。我想知道如何将这些文件存储在我的网站上,并且只有受限制的人才能访问。我可能有一群人,只允许这些人访问上传的文件。我知道有些人可能会尝试将链接复制到文档或文件,然后将其传递给另一个(不允许的)用户,然后他们可以下载它。那么我该如何预防呢?如何检查下载文件的请求是否由具有文件访问权限的合法用户提出?组成员的用户名与数据库中的文档名和位置一起存储在数据库中,以便他们可以访问它。但我如何防止未经许可的用户以各种方式访问这些机密

在我的应用程序中,我为用户上传文件(如doc、xls、zip等)做了一个规定。我想知道如何将这些文件存储在我的网站上,并且只有受限制的人才能访问。我可能有一群人,只允许这些人访问上传的文件。我知道有些人可能会尝试将链接复制到文档或文件,然后将其传递给另一个(不允许的)用户,然后他们可以下载它。那么我该如何预防呢?如何检查下载文件的请求是否由具有文件访问权限的合法用户提出?组成员的用户名与数据库中的文档名和位置一起存储在数据库中,以便他们可以访问它。但我如何防止未经许可的用户以各种方式访问这些机密数据

考虑到上述情况,如何存储这些文档?我是将文档存储在数据库中的blob列中,还是只让用户上传到一个文件夹中,只将文件的路径存储在数据库中?文件的安全性至关重要。因此,任何有助于实现此功能的程序都肯定会有所帮助。我不喜欢面向对象编程,所以如果您有更简单的代码想与我分享,我将不胜感激

另外,如何归档旧文档?比如说,有些文档已经存在一年了,我想通过存档来节省我的网站空间,但在用户需要时仍然可以使用它们。我该怎么办


谢谢。

将它们作为BLOB存储在数据库中。通过这种方式,您可以将文件与用户组关联,并像通常处理与用户相关的网站一样设置安全限制。

决定无论如何给出一个答案;)

这里有一个简单的,但我认为有用(我自己没有用过,只是很快为您找到了它)


它的上传部分看起来不错,但不要使用下载部分中想要回显文件链接的部分-我认为这不是你想要的。如教程所述,立即回显文件内容,记住设置标题。

我认为您在标题:MySQL中回答了大部分问题。数据库是安全的,并且很容易控制谁可以访问其中的数据。将文件存储在数据库中,您就安全了。@Sune,谢谢您的回复。1.我是否不需要特殊代码来确保合法用户正在请求文件?我的意思是用户可以彼此共享链接。那么,我如何进行检查(通过PHP代码)以确保只有合法用户请求下载该文件呢?2.如何存档文件和访问存档文件?@Ben,同样的问题也要问你。1.我是否不需要特殊代码来确保合法用户正在请求文件?我的意思是用户可以彼此共享链接。那么,我如何进行检查(通过PHP代码)以确保只有合法用户请求下载该文件呢?2.如何存档文件和访问存档文件?@Denver-取决于,如果一个文件只有一个用户,则在文件表中,您必须具有用户id的外键。如果一个文件有多个用户,则必须具有文件-用户关系表,一列是用户表的外键,另一列是文件表的外键。之后,您可以选择获取可以下载文件X的用户id,并将其与PHP会话中的当前用户id进行比较。现在,假设您使用的是会话,并且用户必须登录才能下载文件,则此功能可以正常工作。@Denver-Google了解如何使用PHP在Mysql中上载/提供blob。基本上,您将有一个“download.php”,在其中通过POST或获取文件id,检查用户会话中的id是否有权下载文件,然后发送一些标题。听起来很复杂,但事实并非如此。@Ben谢谢你的提示。我会试试看。在归档方面有什么帮助吗?@Devner:事实上,我看不出你问的有什么大问题。我不是想粗鲁什么的,但是-RTFM。这不是最难的练习。试试谷歌搜索;)@Sune看起来我们在谷歌搜索的时候登陆了同一个网站。我实际上是在尝试执行这个程序。谢谢你。