如何在服务器上命名文件?

时间:2013-07-02 07:51:33

标签: php filenames uniqueidentifier

我想在服务器上保存文件(主要是图像和文档),但我有一个两难选择:应该如何命名? (每个文件都有DB-ID,title,fileName,extension,created,...)

的记录
  1. 我的第一个想法是它将以ID命名(来自DB - 每个名称都是唯一的),但是当有人下载​​它时,它会有丑陋的名字(ID)
  2. 第二个想法是它将以原始文件名命名,但它不确定名称是否唯一。因此,每次上传某些内容时,我都必须检查所有数据库是否有重复的名称。
  3. 最后的想法是将ID与名称(fileName_ID)连接起来,因此它将是唯一的,但我对此并不满意。
  4. 有没有更好的解决方案?

    感谢您的回答。米甲

3 个答案:

答案 0 :(得分:4)

  

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

这是正确的答案。

  

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

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

答案 1 :(得分:0)

解决方案2:忘掉它。它根本不确定。

解决方案3可以没问题。

解决方案1没问题。

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

header('Content-Disposition: attachment; filename="'.getFileNameFromDB($file_id));

答案 2 :(得分:0)

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

$random_digit=rand(0000,9999);

$new_file_name=$random_digit.$file_name;

或使用您的上一个想法,并在下载或显示时将其重命名为无ID