0

我想在服务器上保存文件(主要是图像和文档),但我有一个难题:它应该如何命名?(每个文件都将在 DB 中记录 - ID、标题、文件名、扩展名、已创建...)

  1. 我的第一个想法是它将由 ID 命名(来自 DB - 每个名称都是唯一的),但是当有人下载​​它时,它将具有丑陋的名称(ID)
  2. 第二个想法是它将以原始文件名命名,但不确定名称是否唯一。所以每次我上传东西时,我都必须检查所有数据库是否有重复的名称。
  3. 最后一个想法是将 ID 与名称 (fileName_ID) 连接起来,这样它将是唯一的,但我对此并不满意。

有没有更好的解决方案?

感谢您的回答。迈克尔

4

3 回答 3

4

我的第一个想法是它将由 ID 命名(来自 DB - 每个名称都是唯一的)

这是正确的答案。

但是当有人下载​​它时,它会有丑陋的名字(ID)

Content-Disposition这就是为什么我们在标题中给它一个漂亮的名字。

于 2013-07-02T07:55:41.020 回答
0

解决方案2:忘记它。完全不确定。

解决方案3可以。

解决方案 1 没问题。

您只需在用户下载文件时更改文件名。

header('Content-Disposition: attachment; filename="'.getFileNameFromDB($file_id));
于 2013-07-02T07:56:31.547 回答
0

还有另一个想法使用随机数并在文件名之前取出随机数

$random_digit=rand(0000,9999);

$new_file_name=$random_digit.$file_name;

或使用您的最后一个想法,并在下载或显示时将其重命名为不带 id

于 2013-07-02T08:01:23.300 回答