tpg*_*114 4 php mysql database-design file-upload
我们刚刚在内部建立了一个基于PHP/MySQL的开源软件解决方案,几乎所有软件都按照我们想要的方式工作,但文件上传并不是我们想要的.目前,它处理"上传"的唯一方法是存储/显示远程URL,但我们需要保持内部.
有关如何存储上传的用户文件的最佳做法吗?它们应该存储在文件系统还是数据库中?每种方法的优缺点是什么?如果已经使用PHP和MySQL,是否更容易实现?是否有更好的混合方法?
我通常会做的广泛概述:
将文件本身存储在文件系统中,而不是存储在数据库中.数据库擅长存储数据,文件系统擅长存储文件.最好将每一个用于他们擅长的事情,即使你能做到不同(我的意见).
将文件存储在Web根目录之外.这将使控制对它们的访问变得更加容易.
由于它们位于Web根目录之外,因此您现在无法直接链接到文件,因此请创建一个脚本来自行提供文件.您可以将数据库中的某种文件标识符传递给脚本,脚本将查找数据库中文件的实际路径,然后提供文件的内容.如有必要,脚本还可以执行用户访问检查.