use*_*765 18 php upload file-upload rename file-exists
我正在尝试重新命名图像的文件名(如果它存在,如果它存在,例如我的文件名是否test.jpg已存在)我想将其重命名为test1.jpg然后test2.jpg依此类推.随着代码我写了它改变我的文件名test1.jpg,然后test12.jpg任何关于修复这个的建议将是非常感谢!
PHP
$name = $_FILES['picture']['name'];
$actual_name = pathinfo($name,PATHINFO_FILENAME);
$extension = pathinfo($name, PATHINFO_EXTENSION);
$i = 1;
while(file_exists('tmp/'.$actual_name.".".$extension))
{
$actual_name = (string)$actual_name.$i;
$name = $actual_name.".".$extension;
$i++;
}
Run Code Online (Sandbox Code Playgroud)
Jas*_*son 38
这是一个小修改,我认为应该做你想要的:
$actual_name = pathinfo($name,PATHINFO_FILENAME);
$original_name = $actual_name;
$extension = pathinfo($name, PATHINFO_EXTENSION);
$i = 1;
while(file_exists('tmp/'.$actual_name.".".$extension))
{
$actual_name = (string)$original_name.$i;
$name = $actual_name.".".$extension;
$i++;
}
Run Code Online (Sandbox Code Playgroud)
受@Jason 回答的启发,我创建了一个函数,我认为它的文件名格式更短、更易读。
function newName($path, $filename) {
$res = "$path/$filename";
if (!file_exists($res)) return $res;
$fnameNoExt = pathinfo($filename,PATHINFO_FILENAME);
$ext = pathinfo($filename, PATHINFO_EXTENSION);
$i = 1;
while(file_exists("$path/$fnameNoExt ($i).$ext")) $i++;
return "$path/$fnameNoExt ($i).$ext";
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25333 次 |
| 最近记录: |