Assign unique name to a file with php

1

Friends I am uploading files to my server with ajax and php, what I would like is to give a unique name to the file I am uploading, in which part of the code can I do this, someone who could help me?

$documento = $_FILES['file'];
    $data = array('success' => false);
    //Validamos si la copio correctamente 
    if(copy($documento['tmp_name'],'upload/'.$documento['name'])){
        $data = array('success' => true);
    }

    //Codificamos el array a JSON (Esta sera la respuesta AJAX) 
    //echo json_encode($data);
    echo $documento['name'];

I use a function that gives a unique name for uploading images:

public static function getUniqueName($extension = 'jpg'){
        switch ($extension) {
            case FJPG:
            case FJPEG:
                $extension = 'jpg';
                break;
            case FPNG:
                $extension = 'png';
                break;
            case FGIF:
                $extension = 'gif';
                break;
        }
        date_default_timezone_set('UTC');
        $name = "img_";
        $name.= date("YmdHis");
        $name.= substr(md5(rand(0, PHP_INT_MAX)), 10);
        $name.= ".".$extension;
        return $name;
    }
    
asked by Agustin Acosta 11.04.2016 в 20:21
source

1 answer

2

You should use it in the copy

$documento = $_FILES['file'];
$data = array('success' => false);
//Validamos si la copio correctamente

// end( explode( ".", "nombre.jpg")) => "jpg" sacamos la extension

$nuevo_nombre = getUniqueName(end(explode(".", $documento['name'])))

if(copy($documento['tmp_name'],'upload/'.$nuevo_nombre)){
    $data = array('success' => true);
}

//Codificamos el array a JSON (Esta sera la respuesta AJAX) 
//echo json_encode($data);
echo $documento['name'];
    
answered by 11.04.2016 / 20:38
source