nn riesco a trovare l'imguippo...
se può servire posto i codici interi
image.class.php
codice:
class Image{
var $src_filename;
var $src_witdh;
var $src_height;
var $src_type;
var $src_attr;
var $src_image;
function Image($filename){
$this->src_filename = $filename;
$this->GetImageInfo();
}
function GetImageInfo(){
list($this->src_width,$this->src_height, $this->src_type, $this->src_attr) = getimagesize($this->src_filename);
}
function CreateSourceImage(){
switch($this->src_type){
case 1:
$this->src_image =imagecreatefromgif($this->src_filename);
break;
case 2:
$this->src_image =imagecreatefromjpeg($this->src_filename);
break;
case 3:
$this->src_image =imagecreatefrompng($this->src_filename);
break;
default: return false;
}
return true;
}
function SaveProportionateImage($filename, $quality, $height){
$dest_height = $height;
$ratio = $this->src_height / $dest_height;
$dest_image = imagecreatetruecolor( $this->src_width / $ratio,$dest_height);
imagecopyresampled($dest_image, $this->src_image, 0, 0, 0, 0,
$this->src_width / $ratio,
$this->src_height / $ratio,
$this->src_width,
$this->src_height);
imagejpeg($dest_image, $filename, $quality);
imagedestroy($dest_image);
}
function Free(){
imagedestroy($this->src_image);
}
}
e il file dove fa l'upload ecc
codice:
$dir_upload=(substr($dir_upload,-1) != "/" && $dir_upload != "") ? $dir_upload."/" : $dir_upload;
define("DIR_UPLOAD",$dir_upload);
define("CHMOD_DIR",$chmod_dir);
define("DEBUG",$debug);
define("SOVRASCRIVI_FILE",$sovrascrivi_file);
define("DIM_MASSIMA",$dim_massima*1024);
define("CHECK_TIPI",$check_tipi);
define("TIPI_PERMESSI",implode("|",$tipi_permessi));
class upload {
var $up_dir; //la directory temporanea in cui verrà uploadata l'img
var $filename; //il nome del file
function upload(){
}
function caricafile(){
//mkdir($_POST['upload'], 0700); //comando per creare una directory
//CODICE PER L'UPLOAD CON VARI CONTROLLI
if (count($_FILES) > 0){
$numero_file= count($_FILES['file']['tmp_name']);
for($i=0;$i<$numero_file;$i++){
if($_FILES['file']['size'][$i] == 0){
echo "L'UPLOAD DEL FILE {$_FILES['file']['name'][$i]} NON E' ANDATO A BUON FINE!
\n";
unset( $_FILES['file']['name'][$i]);
unset( $_FILES['file']['type'][$i]);
unset( $_FILES['file']['size'][$i]);
unset( $_FILES['file']['error'][$i]);
unset( $_FILES['file']['tmp_name'][$i]);
}
}
$numero_file=count( $_FILES['file']['tmp_name']);
echo "Hai caricato $numero_file file(s)";
echo "
\n";
foreach($_FILES['file']['name'] as $chiave=>$valore){
if (DEBUG == 1){
echo "Nome file: ".$_FILES['file']['name'][$chiave]."
\n";
echo "Tipo file: ".$_FILES['file']['type'][$chiave]."
\n";
echo "Dimensione: ".$_FILES['file']['size'][$chiave]." byte
\n";
echo "Nome temporaneo: ".$_FILES['file']['tmp_name'][$chiave]."
\n";
}
if (is_uploaded_file( $_FILES['file']['tmp_name'][$chiave])){
if ($_FILES['file']['size'][$chiave] <= DIM_MASSIMA){
if(CHECK_TIPI == 0 || (CHECK_TIPI == 1 && in_array( $_FILES['file']['type'][$chiave], explode("|",TIPI_PERMESSI)))){
if(!is_dir(DIR_UPLOAD) && DIR_UPLOAD != ""){
if( !@mkdir(DIR_UPLOAD,CHMOD_DIR))
die("ERRORE NELLA CREAZIONE DELLA DIRECTORY ".DIR_UPLOAD."");
}
if(!file_exists(DIR_UPLOAD.$_FILES['file']['name'][$chiave]) || SOVRASCRIVI_FILE == 1){
if (@move_uploaded_file( $_FILES['file']['tmp_name'][$chiave], DIR_UPLOAD.$_FILES['file']['name'][$chiave]))
echo "FILE {$_FILES['file']['name'][$chiave]} TRASFERITO!";
else
die("ERRORE NEL TRASFERIMENTO DEL FILE ".$_FILES['file']['name'][$chiave]."");
} else
echo ("IL FILE ".$_FILES['file']['name'][$chiave]." E' ESISTENTE!");
} else
echo ("IL TIPO DI FILE ".$_FILES['file']['type'][$chiave]." NON E' CONSENTITO!");
} else
echo ("LA DIMENSIONE DEL FILE ".$_FILES['file']['type'][$chiave]." NON E' CONSENTITA!");
} else
die("ERRORE NEL TRASFERIMENTO DEL FILE ".$_FILES['file']['name'][$chiave]."");
echo "<hr />\n";
}
}
include('config2.php');
if(!isset($_FILES)) $_FILES = $HTTP_POST_FILES;
if(!isset($_SERVER)) $_FILES = $HTTP_POST_VARS;
$up = new Upload(TMP_DIR);
//$up->RenameFile($_POST['new_name']);
$up->Upload($_FILES['file']);
//adesso ridimensiono l'img a 400 x 400
include_once 'image.class.php';
$img = new Image(TMP_DIR . '/' . $up->filename);
//creo l'immagine sorgente
$result = $img->CreateSourceImage();
//se il tipo di immagine è supportato
//salvo 2 file:
//uno con l'img grande e uno con l'img piccola
//nelle rispettive directory
if($result){
//salvo l'immagine con altezza 400 lasciandola proporzionata
$img->SaveProportionateImage(IMAGE_DIR . '/' . $up->filename, IMAGE_QUALITY, IMAGE_HEIGHT);
//salvo l'immagine con altezza 75 lasciandola proporzionata
$img->SaveProportionateImage(THUMB_DIR . '/' . $up->filename, THUMB_QUALITY, THUMB_HEIGHT);
//libero la memoria cancellando l'immagine sorgente
$img->Free();
}
//se il tipo di img non è supportata
//o se il file uploadato nn è un immagine
else
echo 'Immagine non valida
';
//In ogni caso cancello il file uploadato nella cartella ./tmp
//$up->DeleteFile(); //funzione non creata
echo 'Guarde le immagini';
}