Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Descargar archivos en ASP.NET

711 views
Skip to first unread message

Raúl Hernández

unread,
Oct 8, 2004, 11:08:19 AM10/8/04
to
Hola, se me ha presentado un problema que no he podido
solventar... He buscado en Internet pero sigo sin conseguir
la respuesta... Tengo una pagina que sube archivos
(imagenes, documentos de word, archivos zip y documentos
PDF) a una Base de Datos SQL Server 2000.. tambien tengo
una pagina en donde se realizan busquedas de dichos
archivos con opcion a descargarlos. La pagina que tiene el
codigo para escribir el archivo funciona correctamente
cuando son imagenes.. El problema es que cuando se trata un
archivo que el usuario desea descargar, al darle guardar ,
se almacena en la computadora pero lo salva con el nombre
de la pagina y la extension de la pagina ASPX que descarga
el archivo.. es decir, si el archivo es de tipo zip, lo
salva como WEBFORM2.ASPX y deseo que lo guarde con el
nombre del archivo y con su extension... el codigo que
utilizo es el siguiente:

Dim myConnection As New
SqlConnection("Server=SERVIDOR;Password=CLAVE;Persist
Security Info=True;User ID=USUARIO;Initial Catalog=PRUEBA")
Dim myCommand As New SqlCommand("Select * from
Files where Id = " & Request.QueryString("id") & " ",
myConnection)

Try
myConnection.Open()
Dim myDataReader As SqlDataReader
myDataReader =
myCommand.ExecuteReader(CommandBehavior.CloseConnection)

Do While (myDataReader.Read())
Response.ContentType =
myDataReader.Item("Content_Type")

Response.BinaryWrite(myDataReader.Item("File_Data"))
Loop

myConnection.Close()
Response.Write("Person info successfully
retrieved!")
Catch SQLexc As SqlException
Response.Write("Read Failed : " &
SQLexc.ToString())
End Try

Que mejoras al codigo puedo hacer para que me salve los
archivos con su propia extension? Gracias de antemano

Eduardo A. Morcillo [MS MVP VB]

unread,
Oct 8, 2004, 12:10:31 PM10/8/04
to
Es cuestion de agregar unos headers a la respuesta:

Response.Clear ' Me aseguro que no haya nada en la respuesta

' Agrego los encabezados con el nombre del archivo y su tamaño
Response.AddHeader("Content-Disposition", "nombre_del_archivo_aqui")
Response.AddHeader("Content-Length", tamaño_del_archivo_aqui)

' Indico el tipo del contenido de la respuesta
Response.ContentType = "application/octet-stream"

' Aqui escribes el archivo en el objetos Response

' Finalizo la respuesta
Response.End()

--
Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo


0 new messages