29
Bueno, para realizar esta tarea hay muchas formas de realizarla, hay muchos scripts y librerias que lo pueden hacer, y esta es otra forma mas en que se puede realizar esto de una manera sencilla y sin despeinarnos, para esto hago uso de 2 clases de PEAR que son HTTP_Upload y la otra es Image_Transform basicamente esto es lo que necesitamos para poder subir y crear nuestro thumbnail de una manera sencilla como veremos a continuacion.
Para esto tambien se me habia olvidado tenemos que tener instalado el modulo de gd para php que es php_gd si vamos a utilzar la libreria GD para realizar esto ( que en mi caso esa es la que usaremos, pero como veran tambien se pueden usar otras librerias , no necesariamente esta).
Bueno comenzaremos realizando una pequeña form para poder subir nuestro archivo, yo no hare todo el HTML solo enfatizare los puntos necesarios , que pueden ser obvios pero a veces son esos detallitos que se le pasan por alto a uno, o hay dias en que realmente uno no se levanto con el pie derecho ( tambien podria ser porque es zurdo :p) y ese dia nada le sale a uno, asi que para eso siempre se puede revisar tips de a web porque puede ser que te salve el dia :D.
el unico detalle a cuidar es que el form debe de tener la propiedad de enctype=”multipart/form-data” y tambien nuestro input debe ser tipo file type=”file” como lo veremos en este pequeño ejemplo,
form action="subir.php" method="post" enctype="multipart/form-data"
input class="button" name="userimage" type="file"
/form
Perdon por no abrir y cerrar las tags pero no se como por el momento porque si lo hago no aparece el codigo sino este es interpretado y eso no queremos :-s.
siguiendo con el tema ya que tenemos nuestro simple form miremoslo del lado de php.
solo necesitamos incluir las 2 clases antes mencionadas y estamos listos.
require_once "HTTP/Upload.php";
require_once "Image/Transform.php";
/* UPLOAD IMAGES */
/* Do the Images Upload*/
$upload = new HTTP_Upload(”es”); // aqui creamos nuestro objeto para poderlo subir y recibe como parametro el lenguaje en el cual queremos que retorne los errores.
// yo le pondre es de espaniol.
$image = $upload->getFiles(”userimage”); // aqui obtenemos los achivos subidos en este caso como nuestro input se llama userimage ese nombre colocamos y listo.
$imageObject =& Image_Transform::factory(’GD’); // tambien creamos nuestro objeto para manipular la imagen una vez este arriba, como habia dicho antes utilizare GD para esto
$image_directory = “./imagenes/”; // a este directorio subire la imagen.
if ($image->isValid()) // aqui verifico si el objeto que recibi de userimage es valido y posee informacion
{
$moved = $image->moveTo($image_directory.”/tmp”); // aqui esta funcion sube el archivo al servidor y lo mueve hacia el directorio que le indique
if (PEAR::isError($moved))
{
//”ERROR subiendo la imagen”; verifico si se pudo subri, si no me tirara un PEAR ERROR.
//print_r($moved);
}else{
/* SI LLEGAMOS AQUI LA IMAGEN YA ESTA EN EL SERVER Y LA PODEMOS COMENZAR A MANIPULAR YUPIIIIIIIII. */
$userimages = $image->getProp(); // esta metedo nos siver para obtener todas las propiedades de la image, como que tipo de imagen es, su nombre, extension y demas.
$result = $imageObject->load($image_directory.”/tmp”.$userimages[’name’]); // asi que la cargamos con el nombre que le habiamos colocado
if (PEAR::isError($result))
{
echo “ERROR THUMBNAIL”; NUEVAMENTE VERIFICAMOS SI HAY ERROR
}else{
$imageObject->resize(125,125); // SI NO , le indicamos cual sera el tamaño que queremos para que lo rezisee (bonita mi palabra)
$imageObject->save($image_directory.$_POST[’maindata’][’idlisting’].”.gif”,”gif”,100); // y la grabamos de nuevo, aqui de una vez aproveche para convertirla
// a gif la imagen que eso se lo hacemos saber con el 3er parametro podemos convertira a jpg, png, etc…
// y el ultimo parametro le indicamos la calidad que queremos de la imagen, estos 2 ultimos parametros son opcionales y no son
necesarios
/* END Thumbnail */
}
}
}
/* END UPLOAD IMAGES */
Asi que alli termina todo verdad, mas adelante actualizare este post para que puedan bajar ya una clase que implemente esto y un pequenio ejemplo para que lo puedan descargar y espero que les sirva, cualquier cosa pueden hacer sus preguntas aqui , y les contestare a la mayor brevedad posible.
ahhh algo que se me olvidaba que es muy importante, la carpeta a la cual deseen subir sus archivos debe de tener permisos de escritura de lo contrario les dara un error que no puede escribir a esa carpeta y no lograran hacer nada.
Para poder manipular la imagen primero tiene que ser subida al servidor de lo contrario no podran hacer nada.
Hasta una nueva ocasion.
gracias por el aporte voy a hacer unas pruebas haber si funciona.
al respecto de:
“Perdon por no abrir y cerrar las tags pero no se como por el momento porque si lo hago no aparece el codigo sino este es interpretado y eso no queremos :-s.”
intentalo con < y > para poner las llaves. Ese es sistema de carácteres unicode.
puff!! me convirtió a simbolos, “& l t ;” y “& g t ;” sin espacios sin los espacios. Busca unicode por si no queda muy claro