【发布时间】:2012-05-03 17:04:03
【问题描述】:
我正在实施一个允许用户上传文件的网站。我想知道上传文件夹应该如何构建,以便我将来可以轻松管理上传的文件。我应该为不同的用户提供不同的子文件夹(例如,user1 的upload/user1,user2 的upload/user2 等)还是应该将它们都放在同一个文件夹中?我应该重命名上传的文件吗? (我知道很多网站都这样做!)
【问题讨论】:
我正在实施一个允许用户上传文件的网站。我想知道上传文件夹应该如何构建,以便我将来可以轻松管理上传的文件。我应该为不同的用户提供不同的子文件夹(例如,user1 的upload/user1,user2 的upload/user2 等)还是应该将它们都放在同一个文件夹中?我应该重命名上传的文件吗? (我知道很多网站都这样做!)
【问题讨论】:
如果您不使用 BLOB,并且用户可能有任意数量的图像,那么我认为您应该使用子文件夹。例如,您可以创建一个以用户 ID 命名的子文件夹。原因之一是当文件夹包含大量文件时,访问时间会增加,因为查找具有指定名称的文件需要更多时间。您还可以在存储文件时重命名文件,以免它们的名称重叠。只是不要忘记将新生成的名称存储在数据库中。
【讨论】:
upload,由 3 个级别组成(例如:upload/0/0/file.jpg)。当文件夹upload/0/0 填充有1024 个文件时,会自动创建文件夹upload/0/1。文件夹 upload/0 可以有 1024 个子文件夹(upload/0/0 到 upload/0/1023)。同样,文件夹upload 也可以有 1024 个子文件夹。因此,我们最多可以存储 2^30 个文件。如果用户每天一共上传 1024 个文件,那么他们需要 2873 年才能用完空间。你觉得可行吗?
例如,如果您想对未登录的任何人“隐藏”它们,重命名它们会很有用。只需将其原始名称存储在数据库中即可。
此外,您始终可以将其全部存储在 BLOB 类型的 SQL 表中。可以是几个 GB,并允许您关联文件名、用户名等。
【讨论】: