如果存在,PHP重命名文件名将数字附加到结尾

标签 php file-upload 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++;
}

最佳答案

这是我认为应该做的小修改:

$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++;
}

关于如果存在,PHP重命名文件名将数字附加到结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16136519/

相关文章:

jQuery-File-Upload iframe 后备检测

file-upload - 如何使用 webdriver 自动化引导文件上传上传控制

php - 使用PHP加载页面时如何自动播放YOUTUBE视频

php - 使用composer时的pdo_mysql dsn

php - 如何在选定的日期范围内选择运行事件?

java - Appengine 直接从流处理文件上传 (JAVA)

python - Flask:TypeError:参数 '%s'的预期Ptr <cv::UMat>

api - YouTube上传API端点

html - 在linux下的firefox浏览器中浏览ftp文件

php - Redis读写基本概念