Laburo España: 250.000 ofertas de empleo

Lunes, 05 de junio de 2006

Upload de archivos con PHP

Aunque parezca una tarea muy dificil, subir archivos al servidor por medio de PHP es muy sencillo.

En Internet existen muchos sitios que ofrecen complejas librerías y sistemas para realizar uploads de archivos al servidor, pero la verdad es que con un sencillo formulario y una página PHP igualmente sencilla, logramos realizar esta tarea relativamente bien.

Para empezar debemos crear un formulario cualquiera con dos particularidades: un atributo adicional en la etiqueta FORM y un campo tipo "file" que permite examinar el PC en busca de cualquier archivo. Usaremos este campo para tomar el archivo a subir.

<form action="upload.PHP" method="post" enctype="multipart/form-data"> 
<input type="file" name="archivo"> <input type="submit" value="Enviar">
</form>


Como puedes obsevar hay un campo especial que nos permite buscar entre nuestros discos el archivo que desemos subir. Finalmente se debe tener mucho cuidado de NO olvidar el atributo "enctype" en la etiqueta FORM para que todo funcione bien.

En el código del formulario se puede observar que la página PHP que recibirá el formulario y realizará el upload se llama upload.PHP.

upload.PHP

En esta página realizaremos una pequeñas validación para que el upload se ejecute de la mejor forma. Primero verificamos que el campo de archivo no esté vacío. Si es el caso mostramos un mensaje, de lo contrario iniciamos el upload.

Esto se puede aclarar un poco más con el codigo mismo de upload.PHP:

<? 
if($archivo !="")
{
@ copy($archivo, $archivo_name);
echo "upload realizado";
}
else
{
echo "Debes completar el campo para hacer el upload";
}
?>

Primero verificamos que el campo "archivo" ($archivo) no esté vacío. Si efectivamente hay algo que subir entonces procedemos a ejecutar la función copy() que se encargará del upload.

A la funcion copy() se le deben pasar dos parámetros, y aunque su utilidad básica (y como su nombre lo indica) es la de copiar archivos que ya están en el servidor mismo, funciona perfecta para simplemente copiar desde una ubicación local a una en el server. Los parámetros obligatorios son:

copy(archivo, destino);

En este caso el archivo de inicio es simplemente el campo que tomamos del formulario ($archivo) pero hay una particularidad en el de destino:
no es simplemente $archivo tambien, sino "$archivo_name". Esta pequeña cadena que agregamos a la variable permite que el upload se realice correctamente ya que de lo contrario el archivo no subiría con su nombre sino que buscaría unas configuraciones existentes en el PHP.ini, archivo que generalmente no podemos controlar. Adicionalmente, el destino no está limitado y puede ser un directorio distinto de donde se encuentra upload.PHP simplemente agregando la ruta:

copy($archivo, "/ruta/del/directorio/". $archivo_name); 

Solo basta aclarar que en máquinas Windows esto se realiza sin problemas y los directorios no necesitan permisos especiales en condiciones normales, pero en Unix/Linux se recomienda dar permisos CHMOD 777 al directorio en donde se realizará el upload.

Por: Sirluamark | Programación | Comentarios (0) | Referencias (0)

Comentarios

Comentar


Recordar datos

Previsualización de tu comentario:
 está escribiendo...

Búsqueda

Acerca de

Blog dedicado a articulos de programacion, entretenimiento, humor y cosas curiosas que me encuentre por internet, asi como opiniones personales sobre temas de actualidad.

Junio de 2006
>>
Lu Ma Mi Ju Vi Do
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30

Enlaces

Humor:

Sindicación

RDF XML ATOM
Articulos en PDF

Estadísticas

Dias online: 763
Posts: 13
Comentarios: 4
Posts/dia; 0.02
Comentarios/dia: 0.01
Cometarios/post: 0.31

Visitas