Todo en ASP.NET

Blog dedicado a la programación con Visual Studio .NET….. especialmente desarrollo Web

FileUpload con jQuery y ASP.NET

Publicado por Julio Avellaneda en 05/07/2011

En los dos artículos anteriores, vimos como poder realizar la subida de archivos en primera medida con el FileUpload estándar que ofrece ASP.Net (míralo acá) y como segunda parte como realizar la misma acción pero esta vez utilizando el FileUpload del AjaxControlToolkit (revísalo acá).

Y hoy vamos a ver como tener un FileUpload pero esta vez utilizando jQuery.

Existe gran cantidad de plugins de jQuery que permiten tener un control para realizar la subida de archivos, pero en este ejemplo voy a utilizar el Multiple File Upload.

Dicho plugin tiene varias características interesantes, las que más me gustan son:

  1. Permite subir múltiples archivos.
  2. Permite especificar los archivos que es posible subir.
  3. Limitar el número de archivos.

Como usar el plugin:

  1. Establecer la propiedad class=”multi”
  2. Para limitar el número de archivos se debe utilizar la propiedad maxlength=”número de archivos”
  3. Para definir el tipo de archivo permitido utilizar la propiedad accept=”tipos de archivos”

Ahora nuestro código HTML sería:

<asp:FileUpload ID="uploadFile1" runat="server" class="multi"
    maxlength="3" accept="gif|jpg|png" />
<asp:Button ID="btnSubir" runat="server" Text="Subir Archivos" />
<asp:Label ID="lblMensaje" runat="server" ForeColor="Red"></asp:Label>

Como se puede ver se hace uso del control FileUpload, se está definiendo la class=”multi”, un máximo de 3 archivos y se esta limitando a subir archivos que sean únicamente imágenes.

Ahora el código del botón que implementará la lógica para la subida de los archivos:

Dim files As HttpFileCollection = Request.Files
For i As Integer = 0 To files.Count - 1
    Dim postedFile As HttpPostedFile = files(i)
    If postedFile.ContentLength > 0 Then
        postedFile.SaveAs(Server.MapPath("files\") & Path.GetFileName(postedFile.FileName))
        lblMensaje.Text="Archivos subidos correctamente."
    End If
Next i

Primero se obtiene una colección de todos los archivos a cargar,  luego se recorre mediante un ciclo for cada archivo de la colección y finalmente se utiliza el método SaveAs para guardar el archivos.

Finalmente al seleccionar varios archivos en pantalla estos se visualizarán en pantalla y podrán ser eliminado en caso de no ser el archivo que se quiere subir:

Como se ha podido ver, este plugin es bastante fácil de utilizar y permite ampliar las capacidades del FileUpload ofrecido por ASP.NET.

Como siempre les dejo el código tanto en VB como C#.

Código en VB !

Código en C# !

About these ads

24 comentarios hacia “FileUpload con jQuery y ASP.NET”

  1. PP escribió

    Muchisimas gracias !! Buenísima solución !!

  2. rocio escribió

    hola…disculpa por molestar pero esto me urge mucho…en el boton me marca error en
    Dim postedFile As HttpPsotedFile = file (i)
    if postedFile. ContentLength > 0 then
    postedFile.SaveAs (Server.MapPath(file\) yyyyyyyyy todo lo demas

    nos e porke merca error …si me puede contestar pronto porfas

  3. mariobot escribió

    Que buen articulo, como siempre muy acertadas tus recomendaciones y tips para mejorar la experiencia de usuario en nuestras aplicaciones.

  4. jesusalexis escribió

    interesante….pero una consulta..y como hacemos para mostrar esos archivos…k subimos?….si es .pdf o .doc como los mostramos??

    • Julio Avellaneda escribió

      Hola, el tema de mostrar los archivos es algo complicado, a menos q sepas excatamente q tuipo de archivo vas a mostrar, me explic si es una imagen la puedes mostrar es un control image facilemtne, pero para el tema de archivos de la suite de office realmente mostrar el archivo te sera muy dificuil, deberias es tener un link para hbailitar la descagar del archivo.

  5. murel escribió

    No puedo ejecutar tu proyecto de ejemplo. No me reconoce una propiedad targetframework del web.config. Saludos

  6. Carlos escribió

    hola sera posible que permita seleccionar varias fotos y no solo de una en una?, muchas gracias

    Saludos

  7. murel escribió

    Ademas de que no compila por el class=”multi”

  8. Edward Ocando escribió

    Y donde entra jquery en todo esto…? En todo tu explicación, aunque funciona muy bien, no referencia referencia a jquery por ningun lado, todo esto funciona normalmente con asp net, pero aqui no hay nada de jquery….

  9. Abel Amaro Julian escribió

    Muchs gracias me sirvio de mucho =)

  10. Arturo Suarez escribió

    Hola, cuando implemento el fileupload con los js funciona muy bien, pero al colocar otras librerias de jquery (las ultimas versiones) que necesito de pronto la página sale completamente vacía, quedando solo la información de las páginas maestras. ¿Que puedo hacer al respecto? Muchisimas gracias por tu post.

    • Julio Avellaneda escribió

      Hola amigo, la verdad es bn raro lo que pasa, se me ocurre que puedes revisar con firebug si tienes algun error o algun conflicto, alli puedes ver errores, warning etc, ademas te pregunto, cuando dices otras librerias de jquery te refieres a la ultima version de jquery o a plugins? quedo atento, saludos.

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Conectando a %s

 
Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 1.644 seguidores

%d bloggers like this: