codice:
<html>
<head>
<title>
Upload Immagini
</title>
</head>
<body>
<form name="formUpload" enctype="multipart/form-data" method="post" action="upload02.php">
<input name="fileUP" type="file">
</p>
<input type="submit" name="Submit" value="Invia">
</p>
</form>
</body>
</html>
Codice PHP:
<?php
/*se riceviamo i dati dal form*/
if ($_SERVER['REQUEST_METHOD'] == 'POST' && $_FILES['fileUP']['size']>0)
{
$fileName = $_FILES['fileUP']['name'];
echo $fileName;
echo "
";
$tmpName = $_FILES['fileUP']['tmp_name'];
echo $tmpName;
echo "
";
$fileSize = $_FILES['fileUP']['size'];
echo $fileSize;
echo "
";
$fileMimeType = $_FILES['fileUP']['type'];
echo $fileMimeType;
echo "
";
/*Ricaviamo le informazioni sull'immagine*/
list ($width, $height, $type, $attr) = getimagesize($_FILES['fileUP']['tmp_name']);/*restituisce larghezza e altezza in pixel
valore numerico corrispondente al tipo e una stringa contenente il testo img="xxx" width="xxx"*/
echo "<h3>risultati getimagesize: </h3>";
echo $width;
echo "
";
echo $height;
echo "
";
echo $type;
echo "
";
echo $attr;
echo "
";
/*cotrolliamo che il lato maggiore non superi 640 pixel*/
if (($width > 640) || ($height > 640)){
die ("
Immagine troppo grande, deve essere minore di 640 X 640</p>");
}
/* In Base al tipo di immagine, creaiamo un'immagine temporanea del tipo corretto*/
switch ($type) {
case 1: //gif
$img_in=imagecreatefromgif($tmpName) or die ("impossibile creare l'immagine gif");
if (!isset($extension)) {
$extension = "jpg";
}
break;
case 2: //jpg
$img_in = imagecreatefromjpeg($tmpName) or die("impossibile creare l'immagine jpg");
if (!isset($extension)) {
$extension = "jpg";
}
break;
case 3: //png
$img_in = imagecreatefrompng($tmpName) or die("impossibile creare l'immagine png");
if (!isset($extension)) {
$extension = "png";
}
break;
default:
die ("impossibile creare l'immagine");
}
/*calcoliamo la percentuale di ridimensionamento in base alle dimensioni desiderate*/
$thumb_max_width= 100;
$thumb_max_height= 100;
$percent = ($width>$height) ? $thumb_max_width/$width : $thumb_max_height/$height;
$th_width = $width*$percent;
$th_height = $height*$percent;
$img_new = imagecreatetruecolor ($th_width,$th_height);
imagecopyresampled($img_new, $img_in,0,0,0,0,$th_width,$th_height,$width,$height);
/*a seconda del tipo di file inviamo albrowser l'header corretto*/
switch ($extension) {
case "gif":
header("Content-type: image/gif");
exit;
case "jpg":
header("Content-type: image/jpeg");
exit;
case "png":
header("Content-type: image/png");
exit;
default:
die ("impossibile visualizzare l'immagine");
}
}
else{
echo "
Il file non esiste</p>";
}
?>
non riesco a farlo funzionare.
Se creo la miniatura di un immagine che ho su una cartella caricata da me viene la miniatura.
Se passo l'immagine via upload mi da tutti i dati della foto così:
codice:
dscf0045.jpg
/tmp/phpYAl2hx
48038
image/jpeg
risultati getimagesize:
640
480
2
width="640" height="480"
senza il blocco case.
Quando metto case o anche solo una riga con content.type mi stampa a video:
http://localhost/login/galleria/upload02.php il nome del file.
Praticamente e come se non riuscisse a creare la miniatura da un file senza averlo già sul server.
Sapete aiutarmi.
lo script l'ho trovato su una rivista ma non riesco a farlo funzionare.