Rinominare filename immagine prima di fare l'upload

Marco Bonanno

Utente Attivo
3 Lug 2012
32
0
6
Ciao ragazzi, ho creato un form dove l'utente puo inviare vari campi oltre che un immagine. L'immagine viene caricata in una directory, chiamata "images" e viene caricata con il suo nome file originale. Quindi nasce il problema se un altra immagine con lo stesso nome viene caricata. Per questo motivo, vorrei rinominare il nome del file di ogni immagine che verrà caricata, come ad esempio md5 o non saprei, cosa viene utilizzato di solito?

Questo è la parte di codice:

PHP:
        $filename = $_FILES["filename"]["name"];
        $tmpFilename = $_FILES["filename"]["tmp_name"];
        $path = "images/" . $filename;

        if(is_uploaded_file($tmpFilename)){ // check if file is uploaded
            if(move_uploaded_file($tmpFilename, $path)){ // now move the uploaded file to path (directory)
                echo "File uploaded!";
            }
        }

Grazie
 
ciao, in ogni caso anche se generi un nome "codificato" per estrema certezza devi comunque poi verificare l'eventuale esistenza del nome generato...
PHP:
if(is_uploaded_file($tmpFilename)){ // check if file is uploaded
$pref=substr(md5(rand(0, 1000000)), 0, 4);
$NewFilename=$pref.'-'.$tmpFilename;
            if(move_uploaded_file($NewFilename, $path)){ // now move the uploaded file to path (directory)
                echo "File uploaded!";
            }
        }
 
Ciao, grazie per la risposta. Questa parte di codice praticamente cosa fa? Rinomina il file e lo controlla se è già presente? Inoltre, siccome devo finire le dovute restrizioni, riguardo l upload, come filesize limite, e che vengano caricate solo immagini con estensioni jpg, JPEG, GIF PNG , potresti darmi una mano a stilare questo pezzo DJ codice? Grazie ancora per la risposta

Ho fatto qualcosa del genere comunque:

PHP:
        $random = rand(00000000,99999999);
        $filename = addslashes($random. '_' .$_FILES["img"]["name"]);
        $tmpFilename = $_FILES["img"]["tmp_name"];
        $path = "images/" . $filename;
        
        if(is_uploaded_file($tmpFilename)){ // check if file is uploaded 
            if(move_uploaded_file($tmpFilename, $path)){ // now move the uploaded file to path (directory) 
                echo "Loading ..."; 
            } 
        }
 
Ultima modifica:

Discussioni simili