class.upload.php

Esta clase en php sube imágenes y las manipula con mucha facilidad. Es posible cambiar el nombre, crear miniaturas, añadir textos, fusionar con otras imágenes, cambiar el brillo, saturación, contrastes, añadirle tintas en un solo paso.

Su uso es muy sencillo. Añadimos el include a la clase, la iniciamos y le indicamos la carpeta de destino.

1
2
3
include('class.upload.php');
$handle = new Upload($_FILES['foto']);
$carpeta = $_POST['carpeta'];

Ahora por ejemplo redimensionamos la imagen y la comprimimos al 80%


1
2
3
4
5
6
$handle->image_resize = true;
$handle->image_x = 640;
$handle->image_y = 480;
$handle->image_ratio = true;
$handle->jpeg_quality = 80;
$handle->Process($carpeta);

Y de la misma manera, creamos otra instacia, a la que cambiamos el nombre añadiéndo el prefijo «thmb_», la redimensionamos a 200×150 respetando la relación alto/ancho, y rellenamos de negro el espacio sobrante. También la comprimimos al 80%.

1
2
3
4
5
6
7
8
9
$handle->file_new_name_body = 'thmb_'.$handle->file_src_name_body;
$handle->image_resize = true;
$handle->image_ratio_fill = 'C';
$handle->image_x = 200;
$handle->image_Y = 150;
$handle->jpeg_quality = 80;
$handle->image_background_color = '#000000';
$handle->Process($carpeta);
$handle-> Clean();

Como véis su uso es muy sencillo.
Está en su versión 0.25 (y proximamente la 0.26) y está bajo licencia GPL.

[ web ] [ ejemplos ] [documentación]

8 comentarios.


  • 2 de junio de 2011 a las 4:47
    René dice...
    Excelente, gracias tu post me fue de mucha ayuda :D

  • 21 de junio de 2011 a las 21:50
    Torito dice...
    Vale, pero no entiendo... No me da error pero tampoco me sale nada... Y se supone que aquí no hace falta una base de datos para nada, ¿verdad?

  • 22 de junio de 2011 a las 3:48
    cmacias dice...
    Para nada. De todas formas comprueba que hayas cambiado los campos que coloco a modo de ejemplo ($_FILES['foto'], $_POST['carpeta'], etc) y que venga de un formulario por POST y que el "enctype" del form sea del tipo "multipart/form-data".

  • 22 de junio de 2011 a las 5:14
    Torito dice...
    Gracias, cmacias, pero debo ser un inepto total, porque consigo subir imágenes con un script que tengo para subir archivos, pero al juntarle esto no me hace nada. En vez de foto he puesto imagen, y en carpeta he puesto dibujos, y he creado la carpeta dibujos en mi servidor. Simplemente quiero que me aparezca el mismo archivo que se sube al servidor, no sé si con un if o algo así, pero se me resiste... ¿Alguien sabe de un código que me pueda servir? Gracias.

  • 22 de junio de 2011 a las 5:16
    Torito dice...
    Perdón, edito: Sí que me hace algo, me hace simplemente lo que hace el script que sí funciona, o sea, subirme la imagen al servidor sin que se vea y ya está. Ya sé que luego puedo mostrarla yo con un img=, o algo así, pero quiero que sea automático. Ahora estoy pensando que quizá creando un array de DB...

  • 22 de junio de 2011 a las 14:06
    cmacias dice...
    De todas formas te recomiendo que le eches un vistazo a la documentación ya que te muestra los métodos de recuperar el nombre del archivo, extensión, etc para después poderlos meter en la bd o lo que necesites hacer con esa imagen.

  • 28 de mayo de 2012 a las 13:23
    felipearturo@hotmail.com dice...
    hola seria de utilidad que postees un ejemplo completo y teminado para poder usar la libreria y q expliques si es que hay q bajar la libreria para instalarlo en el servidor como es...

  • 28 de mayo de 2012 a las 13:32
    cmacias dice...
    La librería "siempre" habría que bajarla y alojarla en el servidor en que se fuera a usar, ya que es php y se ejecuta en el servidor y no en el cliente.

    Por otro lado, el ejemplo que publico es la base para poder complementarlo con el ejemplo más detallado que ponen a disposición del usuario en :
    http://www.verot.net/php_class_upload_samples.htm

    También la página de documentación :
    http://www.verot.net/php_class_upload_docs.htm
    es muy completa y clara. Es muy sencillo usarla teniendo un mínimo de conocimientos de php.
Deja tu comentario