Presentamos un clásico componente ASP que permite a tus visitantes subir archivos a tu servidor.

Muchos son los componentes ASP disponibles en el mercado, gratuitos o no, encargados de gestionar la transferencia de archivos por medio de un navegador hacia 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

Como hemos dicho, existen multitud de componentes que pueden ayudarnos en esta tarea. Nosotros comentaremos aquí el que hemos utilizado en alguna ocasión: AspUpload de Persits Software.

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:

  • Limitar el tamaño del archivo a colgar.
  • Permitir o no el sobrescribir un archivo.
  • Controlar los atributos del archivo.
  • Mover, copiar, renombrar y borrar el archivo recibido.
  • Almacenar los archivos en bases de datos.
  • Guardar los archivos en memoria, no en el disco duro.
  • Nos informa sobre las dimensiones y tipo de archivo grafico colgado.
    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.











    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:


    <%
    Set Upload = Server.CreateObject(«Persits.Upload.1»)
    Count= Upload.Save(«d:xvrtmidominio.comhtmlupload»)
    %>
    <% = Count %> ficheros subidos.


    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.