a me così funziona perfettamente:
pagina engine.php:
Codice PHP:
<?
$nome=$_POST["nome"];
$file=$_FILES['file']['name'];
$tmp=$_FILES['file']['tmp_name'];
$cartellaDati="users/".$nome;
mkdir($cartellaDati,0755);
$path="users/".$nome."/";
$new_width=300;
$new_height=300;
$copy=$cartellaDati."/".$nome;
copy( $tmp, $copy )or die(mysql_error());
$nomeimage=$nome.".jpg";
resize($nomeimage, $path, $path, $new_width, $new_height);
//$new_width, $new_height sono le dimensioni della immagine finale
function resize($nomeimage, $source_path, $destination_path, $new_width, $new_height){
list($width, $height, $type, $attr) = getimagesize($source_path.$nomeimage);
$compression=100;
$destimg=imagecreatetruecolor($new_width,$new_height) or die("Problemi nelle creazioni dell'immagine");
$srcimg=ImageCreateFromJPEG($source_path.$nomeimage) or die("Problemi nell'aprire l'immagine");
$w=ImageSX($srcimg);
$h=ImageSY($srcimg);
$ro=$new_width/$new_height;
$ri=$w/$h;
if($ro<$ri){
$par="h"; //immagine alta, verticale
}else{
$par="w"; //immagine larga, orizzontale
}
if($par=="h"){
$ih=$h;
$conv=$new_width/$new_height;
$iw=$conv*$ih;
$cw=($w/2)-($iw/2);
$ch=($h/2)-($ih/2);
}else if($par=="w"){
$iw=$w;
$conv=$new_height/$new_width;
$ih=$conv*$iw;
$cw=($w/2)-($iw/2);
$ch=($h/2)-($ih/2);
}
//qui poi ci andrà messo un ciclo per verificare il tipo di immagine, ora diamo per scontato che sia jpg
ImageCopyResized($destimg,$srcimg,0,0,$cw,$ch,$new_width,$new_height,$iw,$ih) or die("Problemi nel ridimensionamento");
ImageJPEG($destimg,$destination_path.$nomeimage,$compression) or die("Problemi nel salvataggio");
}
?>
pagina index.php (il form):
Codice PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento senza titolo</title>
</head>
<body>
<form action="engine.php" method="post" enctype="multipart/form-data" name="form1" id="form1">
<input name="nome" type="text" id="nome" />
</p>
<input type="file" name="file" />
</p>
<input type="submit" name="Submit" value="Invia" />
</p>
</form>
</body>
</html>