Codice PHP:
//definisco le estensioni immagini che accetto
$estensioniconsentite_foto_jpg = array("image/pjpeg","image/jpeg","image/jpg");
$estensioniconsentite_foto_gif = array("image/gif");
$estensioniconsentite_foto = array("image/pjpeg","image/jpeg","image/jpg","image/gif");
mysql_query("INSERT INTO prova (nome, provincia, telefono, sito) VALUES ('$nome', '$provincia', '$telefono', '$sitoweb')", $connessionealdatabase); // salvo gli altri campi del modulo
$inserimento = mysql_insert_id();
$percorso_foto = "$_SERVER[DOCUMENT_ROOT]immagini/fotografie"; //cartella foto delle immagini che carico
foreach($_FILES["upfile"]["error"] as $idfoto => $caricato)
{
$nfoto = $idfoto+1;
if($caricato==UPLOAD_ERR_OK) // c'è la fotografia
{
// carico le immagini in 3 formati: miniatura, mezza misura, misura intera
$grandezza_file = $_FILES["upfile"]["size"][$idfoto];
$estensione_file = $_FILES["upfile"]["type"][$idfoto];
$grandezza = ($grandezza_file/1024);
if(($grandezza_file > $grandezza_max_foto) || (!in_array($_FILES["upfile"]["type"][$idfoto],$estensioniconsentite_foto)))
{
if(!in_array($_FILES["upfile"]["type"][$idfoto],$estensioniconsentite_foto))
{
echo"[*]L'immagine numero $nfoto non può essere caricata perché di un tipo non permesso. Sono ammesse solamente fotografie di tipo <span class=\"grassetto\">$stampo_estensioniconsentitefoto</span>. tipo->".$_FILES["upfile"]["type"][$idfoto]."<- tipo ";
} // tipo non consentito
if($grandezza_file > $grandezza_max_foto)
{
echo"[*]L'immagine numero $nfoto non può essere caricata perché troppo grande. La dimensione massima consentita è $stampo_dimensionefoto Kb e il file caricato pesa ".round($grandezza,2)." Kb.";
} //dimensione
}
else
{
if(in_array($_FILES["upfile"]["type"][$idfoto],$estensioniconsentite_foto_jpg))
{
$ext = "jpg";
}
if(in_array($_FILES["upfile"]["type"][$idfoto],$estensioniconsentite_foto_gif))
{
$ext = "gif";
}
$nomefile = Random(); // ho una funzione che mi assegna un nome random
$upfile = "" .$nomefile .".".$ext."";
is_uploaded_file($_FILES["upfile"]["tmp_name"][$idfoto]);
move_uploaded_file($_FILES["upfile"]["tmp_name"][$idfoto], "$percorso_foto/fullsize/$upfile"); //salvo la foto caricata nel percorso
copy("$percorso_foto/fullsize/$upfile","$percorso_foto/thumbnails/$upfile");
copy("$percorso_foto/fullsize/$upfile","$percorso_foto/halfsize/$upfile");
if($ext=="gif")
{ $fullsize=imagecreatefromgif("$percorso_foto/fullsize/$upfile"); // prendo l'immagine da dove l'ho salvata
}
if($ext=="jpg")
{ $fullsize=imagecreatefromjpeg("$percorso_foto/fullsize/$upfile"); // prendo l'immagine da dove l'ho salvata
}
$fullsize_height=imagesy($fullsize);
$fullsize_width=imagesx($fullsize);
//miniatura
$thumb_width=150; //gli dico la larghezza
$thumb_height=floor($fullsize_height/($fullsize_width/$thumb_width)); // se voglio tenere le proporzioni
$thumb=imagecreatetruecolor($thumb_width,$thumb_height);
imagecopyresampled($thumb,$fullsize,0,0,0,0,$thumb_width,$thumb_height,$fullsize_width,$fullsize_height);
//mezza misura
$hlf_width=300; // gli dico la larghezza
$hlf_height=floor($fullsize_height/($fullsize_width/$hlf_width)); // se voglio tenere le proporzioni
$hlf=imagecreatetruecolor($hlf_width,$hlf_height);
imagecopyresampled($hlf,$fullsize,0,0,0,0,$hlf_width,$hlf_height,$fullsize_width,$fullsize_height);
if($ext=="gif")
{ imagegif($thumb,"$percorso_foto/thumbnails/$upfile");
imagejpeg($hlf,"$percorso_foto/halfsize/$upfile"); }
if($ext=="jpg")
{ imagejpeg($thumb,"$percorso_foto/thumbnails/$upfile");
imagejpeg($hlf,"$percorso_foto/halfsize/$upfile"); }
imagedestroy($fullsize);
imagedestroy($thumb);
imagedestroy($hlf);
$fotoallegata = ereg_replace("".$_SERVER['DOCUMENT_ROOT']."","","$percorso_foto/halfsize/$upfile");
echo"[*]L'immagine numero $nfoto è stata correttamente caricata.";
}
mysql_query("UPDATE prova SET foto_". $nfoto ."='$fotoallegata' WHERE id='$inserimento'",$connessionealdatabase); //update o insert, a seconda dei casi
}