2010-02-20 52 views

回答

1

我倾向于将用户上传视为另一种用户数据,因此它们都会进入数据库。很明显,确保你要使用的数据库是一个很好的选择,例如,SQL数据库不一定是正确的。

如果这是有道理的,我尝试使用有意义的网站的使用模式的上下文中的URL模式,例如:

example.com/username/users_file.jpg 

如果只是这样做没有明显的方式,我不得不使用一个代理键,我只是与它生活:

example.com/files/abc123 
example.com/files/abc123/ 
example.com/files/abc123/users_file.jpg 

所有这三个是同一个文件。尤其是abc123就是应用程序查找文件所需的全部内容,最后的额外位就在那里,这样浏览器就可以很好地指出将文件保存到磁盘时应该命名的文件。

这样做意味着不管什么原始文件被命名,它始终是唯一的用户。即使用户希望上传100个具有相同名称的文件,也是唯一的。

0

首先(也许很明显),把用户的文件放在一个专门的地方,这样他们不会冒险覆盖其他东西。

其次,如果你期望很多文件,那么你可能想要有子文件夹。最简单的方法是使用文件名的第一个字母作为文件夹。

所以如果我要上传“smile.jpg”,你可以存储在那儿:小号 /smile.jpg

如果你是超级流行的,仍然有太多的文件,你可以使用更多字母。如果你希望有大量的用户,并且你有大量的服务器,你可以想象通过保存在s .example.com/upload/s /smile.jpg上分割工作(但是如果你有很多服务器,那么你可能已经有了共享存储和加载的透明方式)。