prova così anche se non l'ho testato..
in pratica se la condizione è che quei file sono con quelle estensioni, entra nel tuo ciclo, altrimenti esce..

Codice PHP:
//tutti i tipi di file da uploadare
$cert1 "audio/aiff";
$cert2 "audio/x-aiff";
$cert3 "audio/mpeg3"//qui per gli mp3 ne mancano altri di $cert..

//poi il controllo sui files
if (($_FILES['image']['type'] == $cert1) or ($_FILES['image']['type'] == $cert2) or ($_FILES['image']['type'] == $cert3)) {

do {
  if (
is_uploaded_file($_FILES['image']['tmp_name'])) {
    
// Controllo che il file non superi i 18 KB
    
if ($_FILES['image']['size'] > 18432) {
      
$msg "

Il file non deve superare i 18 KB!!</p>"
;
      break;
    }
    
// Ottengo le informazioni sull'immagine
    
list($width$height$type$attr) = getimagesize($_FILES['image']['tmp_name']);
    
// Controllo che le dimensioni (in pixel) non superino 160x180
    
if (($width 160) || ($height 180)) {
      
$msg "

Dimensioni non corrette!!</p>"
;
      break;
    }
    
// Controllo che il file sia in uno dei formati GIF, JPG o PNG
    
if (($type!=1) && ($type!=2) && ($type!=3)) {
      
$msg "

Formato non corretto!!</p>"
;
      break;
    }
    
// Verifico che sul sul server non esista già un file con lo stesso nome
    // In alternativa potrei dare io un nome che sia funzione della data e dell'ora
    
if (file_exists('upload_img/'.$_FILES['image']['name'])) {
      
$msg "

File già esistente sul server. Rinominarlo e riprovare.</p>"
;
      break;
    }
    
// Sposto il file nella cartella da me desiderata
    
if (!move_uploaded_file($_FILES['image']['tmp_name'], 'upload_img/'.$_FILES['image']['name'])) {
      
$msg "

Errore nel caricamento dell'immagine!!</p>"
;
      break;
    }
  }
} while (
false);
} else {
echo 
"tipo di file non riconosciuto";
}
echo 
$msg

ah.. perchè usi un ciclo do?