SCRIPT per upload e ridimensionamento immagini con PHP e libreria GD

Mettiamo che, come è successo, vi sia commissionato un sito dinamico in l'amministratore abbia la necessità di inserire immagini. Mettiamo poi che quest'utente non abbia mai visto un programma di editing per immagini. Non dico uno professionale... neanche il più scrauso.
Converrete con me che per lui diventa impossibile dare una dimensione fissa alle immagini che inserisce nel vostro bel form di inserimento immagini con l'inevitabile conseguenza di sputtanarvi definitivamente il layout del sito!
La tentazione di installare sui pc dell'amministratore l'ottimissimo theGimp! (per chi non lo sappia è un editor di immagini professionale, opensource, GRAUITO nato in ambiente Linux e sbarcato su piattaforma win.... dateci un occhio se non lo conoscete) non mi è ancora passata, a dire il vero, ma ho deciso di facilitare la vita a chi inseririrà i dati.

Lo script che segue funziona solo per il formato JPG unica accortezza scelta ma se ci mettete un po' le mani è applicabile a tutti i formati supportati dalle librerie GD che devono essere presenti sul server.

innanzitutto create il form e date alla proprietà action="" l'indirizzo della pagina che effettuerà l'inserimento.
tipo questo:


<form action=&paginainserimento.php" method="post" enctype="multipart/form-data" name="form">
<input name="uploadedfile" type="file" id="uploadedfile">
</form>



Sulla pagina di che inserirà le immagini reperite tutte le eventuali variabili che avete passato, io ho usato il metodo POST ma niente vieta di usare il GET.

poi create le variabili:
$cartella="percorso/";

$cartellaweb="percorso";

$document=($_FILES['uploadedfile']['name']);

$document=str_replace(" ","_",$document);

if (move_uploaded_file($_FILES['uploadedfile']['tmp_name'],$cartella.$document))

{

//solo se l'immagine è di tipo jpg

if(eregi(".+.jpe?g$",$document))

{


$he=112;



$size = GetImageSize($cartella.$document);

if ($size[1]>$he)

{


// codice per il ridimensionamento





$wi=$size[0]*($he/$size[1]);







$image = ImageCreatefromJPEG($cartella.$document);

$thumb = ImageCreateTrueColor($wi,$he);

imagecopyresampled($thumb,$image,0,0,0,0,$wi,$he,$size[0],$size[1]);

ImageJPEG($thumb,$cartella.$document, 80);









ImageDestroy($image);

ImageDestroy($thumb);




}

}



move_uploaded_file($_FILES['uploadedfile']['tmp_name'],$cartella.$document);

chmod($cartella . $document, 0777);

}

ok!
in breve lo script recupera l'immagine ... fa un po' di controlli io ho tenuto una sola dimensione fissa se l'immagine la supera allora mantiene il rapporto e rimpicciolisce.
poi la copia sul server e visto che c'è mette i permessi a 777 cioè tutti.
se volete potete essere un pelino più paranoici.
poi fate un redirect a dove volete!

purtroppo non posso farvi vedere l'esempio perchè si trova nella parte admi protetta da password! ma il sito guardatelo lo stesso
è un'agenzia immobiliare... magari trovate la casa della vostra vita ; )
l'indirizzo è http://www.agenziaarcobaleno.com

0 Comments:

Post a Comment




Add to Technorati Favorites
 

Copyright 2006| Blogger Templates by GeckoandFly modified and converted to Blogger Beta by Blogcrowds.
No part of the content or the blog may be reproduced without prior written permission.