<分区>
我们只是在内部建立了一个开源的基于 PHP/MySQL 的软件解决方案,几乎所有它都按照我们想要的方式工作,但文件上传不是我们想要的。目前,它处理“上传”的唯一方法是存储/显示远程 URL,但我们需要将其保留在内部。
是否有关于如何存储上传的用户文件的最佳实践?它们应该存储在文件系统中还是数据库中?每种方法的优点/缺点是什么?鉴于它已经使用了 PHP 和 MySQL,是否更容易实现?有没有更好的混合方法?
<分区>
我们只是在内部建立了一个开源的基于 PHP/MySQL 的软件解决方案,几乎所有它都按照我们想要的方式工作,但文件上传不是我们想要的。目前,它处理“上传”的唯一方法是存储/显示远程 URL,但我们需要将其保留在内部。
是否有关于如何存储上传的用户文件的最佳实践?它们应该存储在文件系统中还是数据库中?每种方法的优点/缺点是什么?鉴于它已经使用了 PHP 和 MySQL,是否更容易实现?有没有更好的混合方法?
最佳答案
我通常会做什么的大致概述:
将文件本身存储在文件系统中,而不是数据库中。数据库擅长存储数据,文件系统擅长存储文件。最好将每个人都用于他们擅长的事情,即使你可以做不同的事情(我的意见)。
将文件存储在您的网络根目录之外。这将使控制对它们的访问变得更加容易。
由于它们在您的网络根目录之外,您现在无法直接链接到这些文件,因此创建一个脚本来为文件本身提供服务。您会将数据库中的某种文件标识符传递给脚本,脚本会在数据库中查找文件的实际路径,然后提供文件的内容。如有必要,该脚本还可以进行用户访问检查。
关于php - 用户文件上传存储的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14041953/