Control gratuito: FileUploadAJAX de Subgurim.net

Hace unos días Javi Navarro, alias Subgurim, se puso en contacto conmigo para comentarme que había puesto a disposición de todo el mundo un interesante control para ASP.NET. Se trata de FileUploadAJAX, un control sustitutivo del control para subida de archivos al servidor (control FileUpload) de ASP.NET 2.0. Este control usa una técnica de aspecto AJAX para conseguir una interfaz de usuario más agradable y sencilla.


Se trata de un control muy fácil de usar. Desde que lo descargue hasta que estuve gestionando archivos en un ejemplillo pasaron menos de 10 minutos. Aunque el control es una versión 1.0 y se puede mejorar en algunos aspectos vale la pena usarlo pues simplifica bastante el trabajo.


Una de las cosas más interesantes (aparte de que es AJAX) es que permite gestionar desde la misma página la subida de varios archivos, almacenando una lista y pudiendo borrarlos si nos arrepentimos. También gestiona automáticamente el renombrado de los archivos que ya existen o la creación de las carpetas en las que deseamos guardar lo que se sube.


Un ejemplo rápido


Descárgate el control desde http://fileuploadajax.subgurim.net/. Ahora para crear una primera aplicación de ejemplo haz lo siguiente:


1.- Crea un nuevo proyecto Web.
2.- En el cuadro de herramientas del diseñador de WebForms añade una referencia al control FUA.dll desde la carpeta en la que lo hayas descargado (botón derecho y «Elegir elementos…»). Así podrás usar el control con sólo arrastrarlo sobre tu formulario.
3.- Arrastra el control a tu formulario. Verás que aparece una caja de subir archivos como representación del mismo.
4.- En el cuadro de propiedades ajusta los textos que quieres usar para añadir, borrar, eliminar de la lista y para el progreso de subir los archivos. Ajusta también la propiedad MaxFiles con el número máximo de archivos que quieras subir desde la página (por ejemplo 3 o 5).
5.- En el código de la página añade una sentencia



Imports Subgurim.Controles


para hacer uso directo y fácil de las dos clases que ofrece el control.
6.- En el evento Load de la página escribe lo siguiente (VB.NET):



Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

If FileUploaderAJAX1.IsPosting Then
    Dim archivo As HttpPostedFileAJAX
    archivo = FileUploaderAJAX1.PostedFile
    archivo.responseMessage_Uploaded = «Guardado: « + archivo.FileName
    FileUploaderAJAX1.Save()
  End If
End Sub


Es decir, si se está subiendo un archivo, obtenemos una referencia a un objeto de la clase HttpPostedFileAJAX que lo representa, y establecemos el texto a mostrar una vez se haya cargado como «Guardado: » seguido del nombre del archivo (así damos «feedback» al usuario sobre la subida del archivo). Finalmente lo guardamos. Al no especificar la ruta se guarda en el raíz de la aplicación.


Ahora ejecuta la aplicación. Verás que funciona muy bien y que la página no se recarga completa, sólo una parte, al más puro estilo AJAX. Muy fácil. Obviamente habría que crear una gestión de posibles errores, controlar aspectos como el tipo de archivo y su tamaño para que no se pueda subir cualquier cosa, etc… pero el ejemplo sirve para ver lo fácil que es usar el control.


Realmente no se trata de un control AJAX ya que por debajo usa marcos ocultos para conseguir su acción, pero el efecto obtenido es el mismo.


Es un control ingenioso y útil si bien necesitaría algunos toques a mayores para poder personalizar mejor la interfaz, corregir algún detalle (el texto de «uploding» no se muestra correctamente al subir archivos grandes, por ejemplo) y hacerlo más «empresarial». Adolece de los mismos posibles problemas que el control FileUpload de ASP.NET, pero es mucho más «cool» que este gracias a las capacidades asíncronas y algún detalle más como por ejemplo la traducción automática de rutas virtuales en físicas y el poder subir varios archivos desde la misma página.


Desde la página de descarga hay también documentación (algo escueta), unos foros y algunos ejemplos. Que lo disfrutes y gracias a Subgurim por dejar esto gratis 🙂

Sin categoría

22 thoughts on “Control gratuito: FileUploadAJAX de Subgurim.net

  1. Hola José Manuel.

    ¿El control ofrece alguna barra o indicador del progreso del upload ? Para ficheros grandes (decenas o cientos de megas) un texto que indique «Uploading» o similar no le indica mucho al usuario, ya que no sabe si el upload se ha producido correctamente o hay algún problema.

    Un saludo

  2. Hola:

    Pues no, enla versión que yoprobé no viene el progreso. No sé si en la última lo habrá incorporado.

    De todos modos no te recomiendo permitir la subida de archivos realmetne grandes por HTTP. Si realmente hay esa necesidad es mejor usar FTP que está pensado para eso. Ten en cuenta que HTTP hace una transferencia de texto, es decir, transmite el arhcivo codificado como Base64 para que pueda ser considerado texto y eso es un problema: es costoso incluso en el cliente, por supuesto en el servidor y además encima aumenta el tamaño de lo que se debe transferir.

    saludos

    JM.

  3. Si quiero guaradar una archivo a servidor por ende una carpeta ftp el control lo hace directo o hay que dar el pass y el user como podria hacer esto

  4. Aun no he probado el control pero se me ocurre respecto a lo de la barra de progreso que alguien pide, que se podria usar una barra en formato de imagen gif, o swf.
    Como la tipica que ponen en los sitios indicator.gif.
    La mostramos cuando comienza el upload, y la ocultamos cuando finaliza.
    Se puede agregar el tipico mensaje de windows «si tarda demasiado reinice», jajajaj, en este caso «vuelva a intentarlo»
    Seria una solucion.

    El link del indicator.gif
    http://static.yuku.com/v2/common/bypass/images/indicator.gif

  5. Hola Sr. Jose M. Alarcon Aguín …en 1999 usted programo una aplicacion que se llama password crack…existe una nueva version de ella???…donde podria conseguirla…saludos….

  6. Estimado Rafael:

    ¡Caray! ¡qué memoria, desde 1999! Gracias por la fidelidad a mis contenidos 🙂

    Lo cierto es que esa aplicación hoy en día no funciona (iba de perlas con Windows 9x, Millenium y otros sistemas antiguos bastante inseguros). Hoy en día para que funcione tendría que escribir otra cosa desde cero y no he tenido ni tiempo ni la necesidad. Lo siento.

    Existen, no obstante varias aplicaciones por ahí que hacen lo mismo en los sistemas actuales.

    Creo que este funciona bien (pero no lo he probado):

    http://www.geocities.com/pwrevealer/

    Saludos

    JM.

  7. Saludos.

    Tengo una pregunta en relación al control FileUploadAJAX me parece excelente. Pero me surgiio el siguiente problema al utilizarlo, Coloque el dll donde lo necesitaba lo referencie en el proyecto, lo agregue a mi forma desde las herramientas y en el load de mi forma coloque el código(lo modifique para que guardara el archivo en un path x) ok, todo funciona bien en mi pc, que me sirve como web server. Ahora compile mi proyecto cree el setup, me lleve el dll y lo monte en otro web server. Cuando corro el sistema el control no aparece en su lugar aparece la palabra ADD y al oprimirlo en el status bar se activa un javascrip(void), no tengo la menor de las ideas asi que si porfis saben de algo les agradeceré me informen. Que tengan lindo día. bye

  8. Hola!!! Quisiera saber si luego de q se cargue ka imagen se puede mostrar en vez de mostrar el nombre d la imagen mostrar la imagen como tal?? y como se haria

  9. hola utilice el fileuploadajax y me funsiona bien pero mi pregunta es como le ago si lo quiero descargar algun archivo de los que ya guarde o subi si alguien sabe se lo agradesera mucho bye.

  10. te agradecería me apoyaras comentando por que no he podido evitar el siguiente error al subir un archivo con este control. «no es un directorio virtual válido».
    Mi directorio tiene los permisos necesarios, de hecho probé subir con el fileupload normal y lo hace bien, trabajo con vs20005 he visto que al parecer es un bug de microsoft, pero agradecería tus comentarios.

  11. he visto que si guardo el archivo en raiz como lo mencionas en el ejemplo,no hay problema, sin embargo cuando establezco una ruta con saveas(ruta, nombre_archivo) se produce el error que menciono.
    «no es una ruta de acceso virtual valida»
    De antemano agradezco tu apoyo.

  12. hice lo que indicas sobre agregar una referencia (FUA.dll) pero no me aparece el control en los toolbox como suguieres.
    ademas lo trato de hacer escribiendo codigo (Responder

  13. Hola.
    Veo que utilizaste el control de Subgurim FileUploadAJAX, de casualidad no te sucede que este control causa un doble postback o postback fantasma en la pagina en que lo utilizas. A mi me esta sucediendo esto y tengo la ultima version del control, en el foro de Subgurim hay un tema con una pregunta sobre esto pero nadie ha dado respuesta.

    Si sabes algo al respecto me seria de mucha utilidad. Gracias.

  14. Lo utilice y me parece exelente pero tengo una consulta hasta que tamaño archivo me permite subir. intente subir un archio de 5 megas y no lo hace solo hace hasta 3 o 4 MB por defecto alguna cofiguracion tengo que hacer ?. tambien tuveproblemas la momento de filtrar los tipos de archivo no mereconocia otro que aperece en el ejemplo solo gif.

  15. Hola utilice tu control y me parecio execelente, pero tengo una consulta hasta que tamaño de archivos soporta por default para subir, intente uno de 5 MB y no lo hizo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *