Ciao a tutti, ho un form per l'upload di un file sul server, l'unico problema è che se invio un file con lo stesso nome lo sovrascrive, come posso fare per generare un nome casuale al file inviato?
il codice è questo:
<?php
// Where the file is going to be placed
$target_path = "uploads/";
/* Add the original filename to our target path.
Result is "uploads/filename.extension" */
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);
//Percorso dove raccoglieremo gli allegati
$percorso = "http://www.nomesito.com/uploads/";
//Nome e Cognome
$numordine = $_POST['numordine'];
$nota = $_POST['nota'];
$file = $percorso.$_FILES['uploadedfile']['name'];
//Messaggio
$oggetto = "Invio file per ordine $numordine";
$messaggio = "
Numero ordine: $numordine
Nota: $nota
File: $file
";
//Inclusione della libreria
require_once("phpmailer/class.phpmailer.php");
//Creiamo un oggetto PHPMailer e ne settiamo le variabili
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
echo "The file ". basename( $_FILES['uploadedfile']['name']).
" has been uploaded
Numero ordine: $numordine
Nota: $nota
File: $file";
} else{
echo "There was an error uploading the file, please try again!";
}
$mail = new PHPMailer();
$mail->From = "test@test.it";
$mail->FromName = "Invio file";
$mail->AddAddress("test@test.it");
$mail->IsHTML(true);
$mail->Subject = $oggetto;
$mail->Body = $messaggio;
$mail->AddAttachment = ($percorso.$_FILES['uploadedfile']['name']);
//Inviamo l'email
if($mail->Send())
echo "Email inoltrata correttamente";
?>
lo script dovrebbe anche mandare il file come allegato ma non so per quale oscuro motivo non lo fa, mi accontenterei quindi di rendere il nome random, cosi da non avere una sovrascrizione del file, come posso modificare il mio codice per farlo?