Estoy tratando de cambiar el nombre del nombre de archivo de una imagen cuando se haya subido, si es que existe, dicen que si mi nombre de archivo es test.jpg y ya existe quiero cambiarle el nombre como test1.jpg y, a continuación, test2.jpg y así sucesivamente. Con el código que he escrito su cambio mi nombre de archivo como test1.jpg y, a continuación, test12.jpg cualquier asesoramiento en la fijación de este sería genial gracias!

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++;
}
claro que la variable $actual_name una vez utilizado debido a que es un bucle haciendo algo de lo que, como este , $acutal_name = «
Usted podría poner a prueba el nombre con $i en el while bucle .. como en "tmp/".$actual_name.$i.".".$extension y crear el valor $name después de que el bucle while $name = "tmp/".$actual_name.$i.".".$extension

OriginalEl autor user2201765 | 2013-04-21

3 Comentarios

  1. 37

    Aquí es una modificación de menor importancia que creo que debería hacer lo que quieras:

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

    OriginalEl autor Jason

  2. 4

    Inspirado en @Jason respuesta, he creado una función que yo considere más corto y más fácil de leer formato de nombre de archivo.

    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";
    }

    OriginalEl autor Fandi Susanto

  3. 1

    Hay varias maneras para cambiar el nombre de la imagen en PHP antes de subir al servidor.
    anexando la hora, identificador único, las dimensiones de la imagen además de números aleatorios, etc.Usted puede ver todos los aquí

    Primer lugar, Compruebe si el nombre de archivo de imagen existe en el alojada la imagen de la carpeta de lo contrario la carga. El bucle while comprueba si el nombre de archivo de imagen existe y agrega un identificador único, como se muestra a continuación …

    function rename_appending_unique_id($source, $tempfile){
    
        $target_path ='uploads-unique-id/'.$source;
         while(file_exists($target_path)){
            $fileName = uniqid().'-'.$source;
            $target_path = ('uploads-unique-id/'.$fileName);
        }
    
        move_uploaded_file($tempfile, $target_path);
    
    }
    
    if(isset($_FILES['upload']['name'])){
    
        $sourcefile= $_FILES['upload']['name'];
        tempfile= $_FILES['upload']['tmp_name'];
    
        rename_appending_unique_id($sourcefile, $tempfile);
    
    }

    De verificación de imagen cambio de nombre de tácticas

    OriginalEl autor Daniel Nyamasyo

Dejar respuesta

Please enter your comment!
Please enter your name here