Ti posto qui di seguito la parte di codice che ho utilizzato per caricare una foto da un form.
Il codice verifica se la foto supera le dimensioni massime e la riduce, altrimenti la carica così com'è. Ci sono abbastanza commenti... quindi credo non sia difficile da capire. In ogni caso per qualunque dubbio chiedi
Codice PHP:
$larghezzaMax = 800; //larghezza massima foto
$altezzaMax = 600; //altezza massima foto
if(isset($_POST["inviaFoto"]))
{
$path="images/foto"; //indirizzo di cartella dove inserire le foto
$erroreCaricamento = false;
$filename = $HTTP_POST_FILES['foto']['tmp_name']; //riferimento al file da caricare
$realname = $HTTP_POST_FILES['foto']['name']; //nome del file da caricare
$realname = str_replace(" ", "_", $realname); //sostituisce gli spazi vuoti nel nome
if(is_uploaded_file($filename)) //prova a caricare l'immagine
{
//dimensioni del file
list($larghezzaOrig, $altezzaOrig) = getimagesize($filename);
//se una delle dimensioni supera il limite crea un nuovo file della dimensione corretta
if($larghezzaOrig > $larghezzaMax or $altezzaOrig > altezzaMax)
{
//calcola il fattore di riduzione dell'immagine
$fattoreLarghezza = $larghezzaOrig / $larghezzaMax;
$fattoreAltezza = $altezzaOrig / $altezzaMax;
$fattoreRiduzione = max($fattoreLarghezza, $fattoreAltezza);
//determina le nuove dimensioni dell'immagine
$larghezzaNew = (int) $larghezzaOrig / $fattoreRiduzione;
$altezzaNew = (int) $altezzaOrig / $fattoreRiduzione;
//crea il file
$fileRidimensionato = imagecreatetruecolor($larghezzaNew, $altezzaNew);
$source = imagecreatefromjpeg($filename);
// ridimensionamento
imagecopyresized($fileRidimensionato, $source, 0, 0, 0, 0, $larghezzaNew, $altezzaNew, $larghezzaOrig, $altezzaOrig);
// salvataggio file
imagejpeg($fileRidimensionato, $path."/".$realname, 100);
//elimina il file temporaneo creato
ImageDestroy($fileRidimensionato);
}
//altrimenti semplicemente sposta il file temporaneo nel posto giuso
else
{
if(!move_uploaded_file($filename, $path."/".$realname))
$erroreCaricamento = true;
}
}
else
$erroreCaricamento = true;
if(!$erroreCaricamento)
{
echo("<script language='JavaScript'>alert(\"Immagine correttamente caricata!\")</script>");
}
else
{
echo("<script language='JavaScript'>alert(\"ERRORE durante il caricamento del file! (probabilmente la foto è troppo grande)\")</script>");
}