[Tutorial] Upload si redemisionare imagine

Locked
User avatar
vasko.
Membru
Membru
Posts: 617
Joined: 8 years ago
Location: Iasi, Miroslava
Has thanked: 0
Been thanked: 0
Zodiac:
Age: 21
Contact:
Status: Offline

8 years ago

Am sa va prezint o functie simpla pentru uploadarea si redimensionarea imaginilor cu php.

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;

}

?>
Părere: buna
User avatar
Aizen
Membru
Membru
Posts: 429
Joined: 8 years ago
Has thanked: 0
Been thanked: 0
Zodiac:
Age: 20
Status: Offline

8 years ago

:tc: Nu s-a mai postat de mult .
Locked

Return to “Tutoriale”