Nel seguente pezzo di codice:

Codice PHP:
<?php
function CreateThumb($filetype$srcdir$dstdir$name$tw$tc)
{
    
// todo: consider refactoring
    
$src "$srcdir/$name";
    
$dst "$dstdir/$name";

    switch (
$filetype) {
        case 
'image/jpg':
        case 
'image/jpeg':
            
$srcImg imagecreatefromjpeg($src);
            break;
        case 
'image/png':
            
$srcImg imagecreatefrompng($src);
            break;
        case 
'image/gif':
            
$srcImg imagecreatefromgif($src);
            break;
    }

    
$origWidth imagesx($srcImg);
    
$origHeight imagesy($srcImg);

    
$ratio $origWidth $tw;
    
$th $origHeight $ratio;

    
$thumbImg imagecreatetruecolor($tw$th);
    
imagecopyresized($thumbImg$srcImg0000$tw$th$origWidth$origHeight);

    switch (
$filetype) {
        case 
'image/jpg':
        case 
'image/jpeg':
            
$res imagejpeg($thumbImg$dst$tc);
            break;
        case 
'image/png':
            
$res imagepng($thumbImg$dst);
            break;
        case 
'image/gif':
            
$res imagegif($thumbImg$dst);
            break;
    }

    return 
$res;
}

function 
filtranome($name$filetype)
{
    
// todo: consider refactoring
    
$extension explode('/'$filetype);
    
// qui filtri con varie funzioni
    
$nuovonome $name;
    
$nuovonome str_replace(array(' ''.',','), '_'$nuovonome); // elimino alcuni caratteri
    
$nuovonome strtolower($nuovonome); // tutto in minuscolo
    
$nuovonome time() . '_' $nuovonome '.' $extension[1];
    return 
$nuovonome;
}

// controllo che non ci siano stati errori nell'upload (codice = 0)
if ($_FILES['uploadfile']['error'] == 0) {
    
$acceptedTypes = array('image/jpeg','image/png','image/gif','image/jpg','image/bmp','image/png');
    
// upload ok
    // controllo formato
    
$filetype $_FILES['uploadfile']['type'];
    if (!
in_array($filetype$acceptedTypes)) {
        die(
"Formato file non valido");
    }
    
// copio il file dalla cartella temporanea a quella di destinazione mantenendo il nome originale
    
copy($_FILES['uploadfile']['tmp_name'], "file_caricati/" filtranome($_FILES['uploadfile']['name'], $filetype)) or die("Impossibile caricare il file");
    
// upload terminato, stampo alcune info sul file
    
echo "
[b]Upload terminato con successo[/b]
Le Informazioni riguardanti il File che hai appena caricato sono:

"
;
    echo 
"Nome file originale: ".$_FILES['uploadfile']['name']."
"
;
    echo 
"Nome file caricato: ".filtranome($_FILES['uploadfile']['name'], $filetype)."
"
;
    echo 
"Dimensione file: ".$_FILES['uploadfile']['size']."
"
;
    echo 
"Tipo MIME file: ".$_FILES['uploadfile']['type'];

} else {
    
// controllo il tipo di errore
    
if ($_FILES['uploadfile']['error'] == 2) {
        
// errore, file troppo grande (> 1MB)
        
die("Errore, file troppo grande: il massimo consentito è 1MB");
    } else {
        
// errore generico
        
die("Errore generico");
    }
}

$srcdir "file_caricati";
$dstdir "miniature";
$name filtranome($_FILES['uploadfile']['name'],$filetype);

// dimensioni della miniatura da creare
$tw 400// larghezza
// livello di compressione della miniatura
$tc 90;

$res CreateThumb($filetype$srcdir$dstdir$name$tw$tc);
if (!
$res) die("Impossibile salvare la miniatura"); 
?>
Quando l'Immagine/Foto viene caricata tramite questo Upload, quest'ultima viene salvata nelle cartelle "file_caricati" e "miniature" con lo stesso formatto con cui vengono caricate.
Come posso fare per far si che:
- Le immagini caricate in "file_caricati" vengano poi salvate in formato .jpeg;
- Le immagini caricate in "miniature" vengano salvate in formato .png;

Cioè, tramite il sistema di Upload io carico una foto con formato .gif, ma poi vengano salvate nelle cartelle con le impostazioni definite sopra.

Consigli?