buonasera

ho un problemino che non capisco come mai si verifica

praticamente io carico un file (in principio erano file pdf ma poi ho deciso di cambiarli in jpg quindi alcuni parti di codice si chiameranno tipo filepdf perchè non avevo molta voglia di andare a cambiare e perdere tempo visto che ho un pò di fretta)

carico un file si chiama PIPPO.jpg

dopo che lo carico vorrei rinominarlo e chiamarlo CARLO.jpg

perchè invece di rinominarlo mi cancella completamente il nome e mi lascia solo il .jpg?

Codice PHP:
$nome=$_POST['nome'];
$prezzo=$_POST['prezzo'];

$nome=mysql_real_escape_string($nome);
$prezzo=mysql_real_escape_string($prezzo);
$sql="INSERT INTO prodotto (id, nome, prezzo, descrizione) VALUES ('$id','$nome','$prezzo', '".addslashes($_POST[descrizione])."')";
if (isset(
$_POST['upload_pdf'])){
$pdfDirectory "prodotti/";
$filename basename$_FILES['filepdf']['name'], ".jpg");
$filename rename($filename,$nome);
$filename preg_replace("/[^A-Za-z0-9_-]/"""$filename).".jpg";
if(
move_uploaded_file($_FILES['filepdf']['tmp_name'], $pdfDirectory.$filename)) {
  
$pdfWithPath $pdfDirectory.$filename;
  }

grazie per le eventuali risposte