4

我们只是在内部建立了一个基于 PHP/MySQL 的开源软件解决方案,几乎所有的都按照我们想要的方式工作,但是文件上传并不是我们想要的。目前,它处理“上传”的唯一方法是存储/显示远程 URL,但我们需要将内容保留在内部。

是否有关于如何存储上传的用户文件的最佳实践?它们应该存储在文件系统还是数据库中?每种方法的优缺点是什么?鉴于它已经使用 PHP 和 MySQL,是否更容易实现?有没有更好的混合方法?

4

1 回答 1

7

我通常会做的事情的广泛概述:

  1. 将文件本身存储在文件系统中,而不是数据库中。数据库擅长存储数据,文件系统擅长存储文件。最好将每一个用于他们擅长的事情,即使你可以做不同的事情(我的观点)。

  2. 将文件存储在 Web 根目录之外。这将使控制对它们的访问变得更加容易。

  3. 由于它们位于您的 Web 根目录之外,因此您现在无法直接链接到这些文件,因此请创建一个脚本来提供这些文件本身。您可以将某种文件标识符从数据库传递到脚本,脚本会在数据库中查找文件的实际路径,然后提供文件的内容。如有必要,该脚本还可以进行用户访问检查。

于 2012-12-26T14:35:19.150 回答