如果文件名存在,则返回附加了_数字的新文件名,以避免覆盖。
function file_newname($path, $filename){
if ($pos = strrpos($filename, '.')) {
$name = substr($filename, 0, $pos);
$ext = substr($filename, $pos);
} else {
$name = $filename;
}
$newpath = $path.'/'.$filename;
$newname = $filename;
$counter = 0;
while (file_exists($newpath)) {
$newname = $name .'_'. $counter . $ext;
$newpath = $path.'/'.$newname;
$counter++;
}
return $newname;
}
示例返回值
myfile.jpg
myfile_0.jpg
myfile_1.jpg
奇怪的是,这个在我的网站上不起作用。
我的目标是限制用户每次只能上传10张图片(从1到10)… picture_1-10.jpg。
如果用户决定删除一张图片,例如picture_7.jpg并上传一张新的,则图片应重命名为与已删除图片相同的标题。
有什么建议吗?提前感谢。
这是我的PHP脚本
如果文件名没有扩展名,那么php会抱怨$$ext变量未设置。
您应该更改此代码
为此
如何从已上传的路径下载我的文件?我将使用什么函数?请帮助我
感谢分享。对我很有用。
感谢分享逻辑,非常有用……
如果您上传了一个已重命名的文件,则此方法不会很好用。
例如:如果您上传“myfile_1.jpg”,它将将其重命名为“myfile_1_1.jpg”。
您必须检查文件中是否存在“_NUMBER”并递增该数字。