problema nell'upload di un'immagine

  • Creatore Discussione Creatore Discussione yok
  • Data di inizio Data di inizio

yok

Utente Attivo
3 Set 2009
62
0
0
Ciao!

Vorrei uplodare e trasferire un immagine dentro una cartella sul server, controllando prima che dimensioni, formato e nome siano corrette.
Non riesco però a far funzionare il controllo relativo al formato file, in quanto mi dice sempre che il formato non è mai jpg/png(anche se ovviamente le immagini che vado a caricare sono jpg). Questo il codice:

<?php



$file_temp=($_FILES['userfile']['tmp_name']);

do {
if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {

if ($_FILES['userfile']['size']>200000) {

$msg="<p>Il file non deve superare i 400Kb";
break;}

list($type)=getimagesize($_FILES['userfile']['tmp_name']);

if (($type!=2) || ($type!=3)) {

$msg="formato file diverso da .JPG or .PNG";
break;}

if (file_exists('foto/'.$_FILES['userfile']['name'])) {

$msg="nome foto già esistente";
break;}

}
} while(false);
echo $msg;

$upload_dir = $_SERVER["DOCUMENT_ROOT"] . "/foto";
if (move_uploaded_file ($_FILES['userfile']['tmp_name'], $upload_dir)){

echo"file trasferito con successo";

}


?>

Grazie!
 
da quello che ne so getimagesize restituisce un array di 7 elementi, l'indice 2 si riferisce al tipo di immagine: gif, jpg, png. Sbaglio?
 
Ciao Borgo!
Ho provato a modificare lo script in questo modo:

if(($_FILES['userfile']['type'] != 'image/jpeg' ) || ($_FILES['userfile']['type'] != 'image/png')) {

echo"il file deve essere jpg or png";
break;
}

ma nonostante tutto continua a a non riconoscermi questi due formati e ogni volta mi stampa che il file deve essere jpg o png. Ma lo script mi pare esatto
 
ciao
oltre a quello che dice marco, prova così (è quello che utilizzo io dai link che ti ho indicati)

PHP:
$tipi_consentiti = array("image/gif","image/jpeg","image/pjpeg","image/png");

//ecc....

if(@in_array($_FILES['userfile']['type'], $tipi_consentiti)){

//quello che devi fare

}else{

//messaggio di errore

}
 
perfetto, grazie gente!
Ho seguito l'esempio di Borgo ed è andata.
Alla prossima, ciao!
 

Discussioni simili