0

我是一名初级/中级 PHP MySQL 开发人员。

计划使用 Yii 或 Codeigniter 创建多用户 Web 应用程序,用户有自己的私人和公共区域。他们将能够上传照片和/或文件以通过网络访问(文档等)

我有点担心文件存储的最佳方式。那些多站点/用户网站(wordpress、blogger、facebook)是如何做到的?

我考虑过以下选项,但我不知道该行业是否采用这种方式:

本质上,我们会为任何用户上传的文件使用 3 个名称(原始名称和 2 个新名称)

  1. 用户上传文件(图像、文档等),我们重命名文件并将其存储在文件夹中,并将原始名称保存在具有其他文件属性的数据库中

  2. 为了显示文件,我们将使用 3rd。飞行中的新名称

这样,只有所有者知道原始名称,没有人知道物理文件名。

  • 这是完成的方式还是有更简单的方法?
  • 是否可以在不重命名文件或重新创建任何图像且不增加处理时间的情况下显示具有“虚拟”名称/路径的文件?或者 PHP 有一种本机方式来“不显示”浏览器的实际文件名?
  • 用户如何在不处理真实​​文件名的情况下使用网址共享文件?
  • 即使没有人知道文件的物理名称,有人可以通过网络“搜索”或定位文件吗?比如谷歌或任何其他精明的感兴趣的用户?

谢谢你

4

1 回答 1

0

您可以非常简单地使用 .htaccess 来重写图像路径的 URL,或者改为散列文件夹和文件名。

存储取决于您将使用的文件数量。像 facebook 等大公司使用数百个(或更多!)服务器工作,并拥有非常专业的存储方法等。

对于常规的 Web 应用程序,简单的文件或数据库存储可能就足够了。

于 2012-04-08T00:18:06.513 回答