每次将新图像上传到文件夹时,都会向图像名称添加1

时间:2014-01-22 15:29:45

标签: php html image upload

我是PHP的新手,我正在学习。

我制作了一个基本脚本,您可以将图像上传到服务器上的导演。我希望图像名称最后得到一个数字,这样名称就不会重复了。

这是我在脚本中添加1的脚本(我对“for loops”非常不满):

for(x=0; $imageName => 50000; x++){
$imageFolderName = $imageName.$x;
}

如果我完全错了,请告诉我。

2 个答案:

答案 0 :(得分:2)

添加到Niet的答案,您可以对文件夹中的所有文件执行foreach循环,并在文件名前加上一个数字,如下所示:

<?
    $directory = 'directory_name';
    $files = array_diff(scandir($directory), array('.', '..'));
    $count = 0;

    foreach($files as $file)
    {
        $count++;
        rename($file, $count.'-'.$file);
    }
?>

或者,您可以将文件重命名为上传时间戳,并使用rand()函数将一些随机字符添加到文件中:

<?
    $uploaded_name = 'generic-image.jpeg';
    $new_name = time().rand(0, 999).$uploaded_name;
?>

您需要在重命名之前和之后处理和移动上传的文件,但是您可以获得如何使用它的一般要点。

答案 1 :(得分:1)

这是避免循环的潜在技巧:

$existingfiles = count(glob("files/*"));
// this assumes you are saving in a directory called files!
$finalName = $imageName.$existingfiles;