3 de junio de 2008

Subir archivos al servidor WEB

El otro dia explique la manera facil de borrar archivos del servidor web mediante php, a peticion de un amigo, bueno pues hoy explicare una manera facil de subir archivos al servidor WEB sin tener que utilizar ftp, usando php.

La manera mas facil es utilizar el script class.upload.php, archivo que nos permite subir archivos e imagenes, modificando su nombre, tamaño, dimensiones, extension, etc...

El archivo se distribuye mediante licencia GPL, pero lo podemos descargar de la pagina principal de su creador aqui

Yo es el sistema que suelo usar para subir archivos y realmente es muy potente.A continuacion os pondre un ejemplo de como realizar una subida con los campos minimos.

if ($_FILES['imagen']['name'])
{
$handle = new upload($_FILES['imagen']);
if ($handle->uploaded)
{
$handle->file_new_name_body = $_POST['nombre'];
$handle->file_auto_rename = true;
$handle->image_convert = 'jpg'; $handle->process('../uploads/'.$_POST['tabla']);
}
if ($handle->processed){
$_POST['imagen'] = $handle->file_dst_name;
}
}


En este caso realizamos los siguiente pasos:

1.- if ($_FILES['imagen']['name']) : Con esto comprobamos si exite el archivo a subir, esto es muy util si utilizamos un solo archivo de subida de datos a la base de datos para todos los formularios.

2.- $handle = new upload($_FILES['imagen']); : Creamos una variable con el formato de la clase del archivo class.upload.php

3.- if ($handle->uploaded)
{
$handle->file_new_name_body = $_POST['nombre'];
$handle->file_auto_rename = true;
$handle->image_convert = 'jpg'; $handle->process('uploads/'.$_POST['tabla']);
}
: Aqui comprobamos si subimos las imagen, hara lo siguiente, cambiar el nombre por el nombre del campo nombre del formulario, al que esta asociado el archivo, le pondra un 1 por si tenemos mas de un archivo asociado a ese campo, lo convertimos a jpg, y por ultimo marcamos la carpeta del servidor a la que subimos el archivo, en este caso en una carpeta llamada uploads y dentro de otra con el nombre de la tabla a la que esta relacionada.

4.- if ($handle->processed){
$_POST['imagen'] = $handle->file_dst_name;
}
: Subimos el archivo al servidor con $handle->processed y si esto se realiza satisfactoriamente guardamos el nuevo nombre del archivo en la base de datos (Esto solo si tenemos un campo en la tabla de la base de datos para guardarlo).


Espero que esto soluciones para mi uno de los problemas que puede generar mayor numero de quebraderos de cabeza.

No hay comentarios: