ciao a tutti!!!

ho questa parte di script che ho messo per limitare l'upload solo ai file mp3, ma forse ho sbagliato la condizione, perche sul browsers mi appare:
Il file non e' di un tipo consentito, sono ammessi solo i file mp3:
ma in realtà il file viene caricato nella cartella, quale può essere il problema??
codice:
$allowed_types = array("audio/mpeg3","audio/x-mpeg-3","video/mpeg","video/x-mpeg");
if(!in_array($_FILES["upfile"]["type"],$allowed_types)) {
die("Il file non e' di un tipo consentito, sono ammessi solo i file mp3: " . implode(",", $allowed_types) . ".");
}
o forse dovevo mettere il codice prima degli altri controlli... questo è lo script completo:

codice:
<?
if(!isset($_FILES)) $_FILES = $HTTP_POST_FILES;
if(!isset($_SERVER)) $_SERVER = $HTTP_SERVER_VARS;
$upload_dir = $_SERVER["DOCUMENT_ROOT"] . "/upload";
$new_name = "";

$file_name = ($new_name) ? $new_name : $_FILES["upfile"]["name"];

if(trim($_FILES["upfile"]["name"]) == "") {

die("Non hai indicato il file da uploadare !");

}

if(@is_uploaded_file($_FILES["upfile"]["tmp_name"])) {

@move_uploaded_file($_FILES["upfile"]["tmp_name"], "$upload_dir/$file_name")
or die("Impossibile spostare il file, controlla l'esistenza o i permessi della directory dove fare l'upload.");

} else {

die("Problemi nell'upload del file " . $_FILES["upfile"]["name"]);

}

$allowed_types = array("audio/mpeg3","audio/x-mpeg-3","video/mpeg","video/x-mpeg");
if(!in_array($_FILES["upfile"]["type"],$allowed_types)) {

die("Il file non e' di un tipo consentito, sono ammessi solo i file mp3: " . implode(",", $allowed_types) . ".");

}

echo "L'upload del file " . $_FILES["upfile"]["name"] . " è avvenuto correttamente";

?>