猿问

上传文件时判断是否存在相同名称文件代码问题

if (move_uploaded_file($fileInfo['tmp_name'],$destination)) {

  //判断文件名是否重名
  if (file_exists($fileInfo['name'])) {
    echo "<script language=\"JavaScript\">\r\n";
    echo " alert(\"文件已存在请重命名后创建\");\r\n";
    echo " history.back();\r\n";
    echo "</script>";
    exit;
  }else{

  echo "<script language=\"JavaScript\">\r\n";
  echo " alert(\"文件上传成功\");\r\n";
  echo " history.back();\r\n";
  echo "</script>";
  exit;
}
}

点击上传还是会有提示框显示:

文件已存在请重命名后创建

 

慕仔8661472
浏览 2308回答 2
2回答

龙一少爷

感觉一楼回答是有道理的,fileexist判断是需要去文件检索的,如果文件数量足够多,这样的算法就很不合理。可以采用时间戳+文件名合并的方法来重命名一下,然后保存,基本不会重名。

回夢

我觉得这种思路不好,为什么不直接想办法建立不同名的文件呢。时间戳加上文件某些命名规则再加上MD5转化,基本就不会重名了。相信百度也能搜出一堆方式。如果检查重名,当你文件太多的时候怎么办?100W文件时你要检索多久,1E文件你又要检索多久?
随时随地看视频慕课网APP
我要回答