我是php的新手,我正在尝试将文件上传到网址,其中php脚本应该具有检查文件是否已存在的逻辑,它应该在文件名后附加一个值,然后再次检查它是否存在如果没有,那么继续进行保存。
这是while循环:
$target_path = $target_path . basename( $_FILES['userfile']['name']);
$i = 1;
while (true) {
if (file_exists($target_path)) {
$target_path = $i . "_" . $target_path;
$i++;
} else {
break;
}
}
现在,我不确定是否休息;与其他语言的工作方式相同。我想要做的是目标路径,如果已经存在,将在while循环的每次迭代中更新和检查,如果它不存在,else应该打破while循环,然后我将保存具有该名称的文件。
仅当文件不存在时才有效,之后它无法重命名文件路径。
这里有什么问题?
答案 0 :(得分:2)
编辑,这应该有用。
$i = 1;
$base = basename( $_FILES['userfile']['name']);
while (file_exists($target_path.$i.'_'.$base)) {
$i++;
}
$target_path = $target_path.$i.'_'.$base;
答案 1 :(得分:-1)
也许这段代码可以帮到你:
function safeFilename($image_path,$filename_original)
{ $extension = strrchr($filename_original, ".");
$filename_base = substr($filename_original,0,-1*strlen($extension));
$filename = $filename_base;
$counter = 1;
while(file_exists($image_path.$filename.$extension))
{ $filename = $filename_base . $counter;
$counter++;
}
return $filename.$extension;
}
更新:我的不好,已修复,感谢您的反馈。