我可以允许用户上传到我们的服务器文件,然后这些文件可以安全存储,并且可以由上传它们的用户访问吗?
我在哪里存储它们,在数据库中?或在网站上的文件夹?如果我使用文件夹?我怎样才能让拥有它们的人看到它而不是其他任何人呢?
我是存储区的新手,所以请提出任何愚蠢的问题。
感谢。
答案 0 :(得分:1)
文件是文件,而不是您需要在数据库中搜索或使用聚合函数的文本数据。操作系统文件系统专门用于处理文件的快速服务和搜索。所以我不会把它们放在数据库中,而是放在文件系统上。
要保护它们,您可以将它们放在一个文件夹中,.htaccess
文件禁止访问,或将它们放在document_root
之外。然后编写一个简单的PHP脚本,以便在有权查看文件时将文件提供给用户。
答案 1 :(得分:0)
使用<input type='file' />
上传的文件到达$_FILES
超全局数组中的目标PHP脚本。 (Documentation)
通常最好将它们存储在数据库中的binary BLOB column中,您可以轻松地将它们与用户ID相关联,以防止未经授权的用户下载。它们通常与包含文件的MIME类型和大小(以字节为单位)的列一起存储。
要在浏览器中将文件传回用户,您可以从PHP发送相应的内容类型标题:
// the mimetype
header("Content-type: application/whatever");
header("Content-length: $length-in-bytes");
// echo the file out to the browser
echo $file;
exit();