Code: Select all
function upload($file, $name, $w=0, $h=0){
$error='';
$oldname=$file["name"];
$uploadedfile=$file["tmp_name"];
$x=explode(".", $oldname);
$extension=strtolower($x[count($x)-1]);
switch($extension){
case 'jpg': case'jpeg': $src = imagecreatefromjpeg($uploadedfile); break;
case 'png': $src = imagecreatefrompng($uploadedfile); break;
case 'gif': $src = imagecreatefromgif($uploadedfile); break;
default: $error='Poza trebuie sa fie JPG, PNG sau GIF!'; break;
}
if($error==''){
list($width,$height)=getimagesize($uploadedfile);
if($w==0) $w=$width;
if($h==0) $h=$height;
$tmp=imagecreatetruecolor($w, $h);
imagecopyresampled($tmp, $src, 0, 0, 0, 0, $w, $h, $width, $height);
imagejpeg($tmp,$name.".jpg",100);
imagedestroy($src);
imagedestroy($tmp);
}
return $error;
}
Functia preia parametrii:
upload($file, $name, $w, $h)
-> $file:
Reprezinta o variabila de tip $_FILES["nume_input_file"];
-> $name
Reprezinta locatia unde va fi stocata poza si numele ei, spre exemplu: "poze/nume_nou" (fara .jpg, deoarece se pune automat)
-> $w (default este 0, adica pastreaza marimea originala a pozei)
Reprezinta valorea in pixeli a latimii noi.
-> $h (default este 0, adica pastreaza marimea originala a pozei)
Reprezinta valoarea in pixeli a inaltimii noi.
$file si $name sunt obligatorii, $w si $h nu sunt, avand ca valoare default 0.
Functia returneaza ''(un string gol) daca imaginea a fost uploadata cu succes, iar altfel returneaza eroarea.
Un exemplu concret aveti aici:
Code: Select all
<?php
if(!isset($_GET['a'])) $_GET['a']='';
switch($_GET['a']){
case '':
?>
<form action="?a=upload" method="post" enctype="multipart/form-data">
Poza: <input type="file" name="img" />
<input type="submit" value="upload" />
</form>
<?php
break;
case 'upload':
$nume='Bidi';
$w=$h=100;
$poza=$_FILES['img'];
if(($error=upload($poza, "poze/".$nume, $w, $h))=='')
echo 'este ok';
else
echo $error;
break;
}
/* function for upload */
/* upload($_FILES["input_name"], "where_to_put/the_photo", 100, 100); */
/* to keep the image size put 0 on width and height */
function upload($file, $name, $w=0, $h=0){
$error='';
$oldname=$file["name"];
$uploadedfile=$file["tmp_name"];
$x=explode(".", $oldname);
$extension=strtolower($x[count($x)-1]);
switch($extension){
case 'jpg': case'jpeg': $src = imagecreatefromjpeg($uploadedfile); break;
case 'png': $src = imagecreatefrompng($uploadedfile); break;
case 'gif': $src = imagecreatefromgif($uploadedfile); break;
default: $error='Poza trebuie sa fie JPG, PNG sau GIF!'; break;
}
if($error==''){
list($width,$height)=getimagesize($uploadedfile);
if($w==0) $w=$width;
if($h==0) $h=$height;
$tmp=imagecreatetruecolor($w, $h);
imagecopyresampled($tmp, $src, 0, 0, 0, 0, $w, $h, $width, $height);
imagejpeg($tmp,$name.".jpg",100);
imagedestroy($src);
imagedestroy($tmp);
}
return $error;
}
?>