Lunes, 05 de junio de 2006
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)