用户如何上传图片&处理文件以便在多用户Web应用程序中查看?

时间:2012-04-07 23:57:16

标签: php web-applications file-upload

我是初学者/中级PHP MySQL开发人员。

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

我很关心文件存储的最佳方式。 这些多站点/用户网站(wordpress,blogger,facebook)如何做到这一点?

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

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

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

  2. 为了显示文件,我们使用第3个。动态新名称

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

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

    谢谢

1 个答案:

答案 0 :(得分:0)

您可以简单地使用.htaccess重写图像路径的URL,或者使用哈希文件夹和文件名。

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

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