为用户制作文件管理器的最佳实践

时间:2010-09-06 08:45:36

标签: php file-upload file-management

我要为用户制作文件,资源管理器。我的网站提供服务帮助用户创建博客,网站并允许用户上传他们的资源。我将创建一个如下所示的文件夹结构。有什么建议吗?

usercontents
--user1
----folder1
----folder2
--user2
--user3
----my images

我应该使用数据库来索引这些文件吗?

2 个答案:

答案 0 :(得分:1)

使用数据库是有意义的,因为只有通过您的界面添加的文件才可用于查看(假设您正在从数据库而不是实际的文件系统中读取文件列表)。

答案 1 :(得分:1)

如果我这样做,首先我会做以下事情:

  • 将文件类型限制为我指定的几个(图像,mp3,mp4,可能是swf);
  • 规范化用户名或将其限制为字母数字,以便我没有用户名文件夹冲突;
  • 规范化文件名,以便my awesome mp3 file (some comment here).mp3变为my-awesome-mp3-file-some-comment-here.mp3;
  • 检查文件名是否存在冲突,以便用户上传与前一个文件名相同的文件时,不会进行覆盖(将重复screenshot.png变为screenshot-2.png);
  • 肯定会将子文件夹的处理移到数据库中,使用户目录中的文件结构保持平坦。

进一步优化:

  • 在数据库中存储文件校验和,以避免在文件系统上存储重复文件。将重复检查限制为自己的文件。

我写了一个社区驱动的文件共享网站,我认为它显示了。 :)