Presentamos un clásico componente ASP que permite a tus visitantes subir archivos a tu servidor.
Referencia: Componentes de servidor en ASP.
Podéis encontrar una descripción de los componentes de ASP muy instructiva en DesarrolloWeb.com. Interesante de leer para todo aquel al que sea una novedad hablar de los componentes ASP en el servidor. |
Este tipo de componentes añaden otro elemento de interacción con el usuario, quien sería capaz de enviar cualquier tipo de archivo a nuestro servidor. Este archivo podría a su vez ser abierto y mostrado al resto de los usuarios en tiempo real.
Una aplicación ejemplo donde podríamos usar este tipo de objetos sería un sitio web de chat donde, cada persona que entra, aporta si lo desea una foto suya que será visualizada por el resto de los interlocutores.
Gestionar esta o cualquier otra aplicación del estilo implica que haremos frente a toda una serie de situaciones que hay que solventar de la manera más sencilla:
- No permitir la transferencia de archivos por encima de un determinado tamaño.
- Controlar el tipo de extensión de los archivos que hay que colgar
- Asegurarnos que los archivos puedan o no ser reescritos
- Guardar parámetros como la anchura y altura de una imagen
- ...
AspUpload permite al servidor aceptar, guardar y manipular archivos que hayan sido enviados por un usuario a partir de un clásico formulario en HTML. El contenido de este formulario es enviado a un script que invoca a un objeto que es quien realmente se encarga de realizar todas las funciones necesarias para la toma y almacenamiento de los archivos.
Entre otras cosas, este objeto nos permite:
A diferencia de otros componentes análogos, AspUpload no es freeware. La razón de que hayamos expuesto éste y no algún otro es simplemente, como ya hemos dicho, porque se trata del que ya hemos utilizado en alguna ocasión. Puede ser no obstante, que el servidor que utilices ya lo haya adquirido y que su utilización no te cueste nada. Una pequeña consulta a tu proveedor puede resolver esta duda. Si éste no es tu caso y deseas hacerte con un componente parecido pero gratuito no tienes mas que buscar en ASP In.
En cualquier caso, este componente nos ha parecido bastante profesional y de un manejo fácil y completo. Altamente recomendable para este tipo de tareas.
Además, el componente viene documentado de manera excelente en la página de la empresa que lo construye, con ejemplos rápidos y prácticos para ponerlo en marcha en un momento.
Ejemplo rápido
Para hacernos una idea básica sobre cómo se utiliza este componente vamos a realizar un ejemplo muy rápido y sencillo.
A continuación podemos ver el código que podríamos utilizar para colocar un formulario en una página web con el que podríamos seleccionar algún archivo para subir al servidor.
<HTML>
<BODY BGCOLOR="#FFFFFF">
<FORM METHOD="POST" ENCTYPE="multipart/form-data" ACTION="cargar.asp">
<INPUT TYPE=FILE SIZE=60 NAME="FILE1"><BR>
<INPUT TYPE=FILE SIZE=60 NAME="FILE2"><BR>
<INPUT TYPE=FILE SIZE=60 NAME="FILE3"><BR>
<INPUT TYPE=SUBMIT VALUE="Upload!">
</FORM>
</BODY>
</HTML>
Es importante colocar el atributo ENCTYPE="multipart/form-data" , que indica que se debe enviar el contenido del archivo y no exclusivamente el nombre.
También podemos ver cómo sería el script que toma el archivo y lo guarda en el servidor. El archivo cargar.asp:
<HTML>
<BODY>
<%
Set Upload = Server.CreateObject("Persits.Upload.1")
Count= Upload.Save("d:\xvrt\midominio.com\html\upload")
%>
<% = Count %> ficheros subidos.
</BODY>
</HTML>
Lo único raro que hacemos es crear el componente en el servidor y asciarlo a la referencia "Upload", esto lo hacemos con Server.CreateObject. Posteriormente utilizamos el método save del objeto para guardar el archivo en el servidor.
Recordamos nuevamente que en la página del componente podemos obtener la documentación entera, que está muy clara e interesante.
Nota: PHP ya tiene la opción de upload de salida.
Una de las ventajas de PHP es que este tipo de acciones se pueden realizar sin tener que instalar ningún componente especial, ya que el sistema de upload ya viene implementado en el propio lenguaje. |
Rubén Alvarez
Rubén es doctor en química y programador principalmente en sus ratos libres con...