Como enviar archivos Binarios al Browser del Cliente en ASP.NET

Para este caso vamos a enviar una imagen jpg que se encuentra previamente en alguna carpeta que se tiene acceso desde el servidor. (revisar acceso de los usuarios anónimos IURS_nombreservidor,  IWAM_nombreservidor y ASP.NET).

 

Vamos a utilizar el objeto System.IO.Stream que nos estrega la funcionalidad de devolver archivos binarios.

 

Dim objStream As System.IO.Stream, _

    FileSize As LongobjStream = New FileStream("c:\imagen.jpg", FileMode.Open)

FileSize = objStream.Length

Dim Buffer(CInt(FileSize)) As Byte

objStream.Read(Buffer, 0, CInt(FileSize))

objStream.Close()

Response.AppendHeader("content-disposition", "attachment; filename=imagen.jpg")

Response.BinaryWrite(Buffer)

Response.End

Published Fri, Jun 24 2005 9:06 by jvargas
Filed under:

Comments

# re: Como enviar archivos Binarios al Browser del Cliente en ASP.NET

Thursday, July 07, 2005 11:11 AM by jvargas

Hola !

Estoy necesitando hacer lo mismo que Miguel y utilizando el ejemplo que
plateas puedo hacer lo que necesito pero mi caso es dar opcion de guardar un
file .txt que existe en el server, todo eso esta bien pero cuando reviso el
archvio que usuario bajo veo la data que tenia el .txt original mas toda la
pagina web que estaba viendo en ese momento, es como que toda la pagina en
html tambien se agrega en el buffer.

Me podrias ayudar a limpiar esto.

saludos y gracias mil

# re: Como enviar archivos Binarios al Browser del Cliente en ASP.NET

Thursday, July 07, 2005 11:34 AM by jvargas

Hola,

El motivo del porque te manda el código HTML en el archivo, es debido a que el ASPX contiene código HTML (obviamente) borra todo lo relacionado con HTML y deja solo la cabecera es decir solo esta línea:
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm1.aspx.vb" Inherits="appFront.WebForm1"%>
y nada más...

Espero te sirva la ayuda.

Saludos,
Jhonny Vargas P.

# re: Como enviar archivos Binarios al Browser del Cliente en ASP.NET

Wednesday, August 23, 2006 6:25 AM by Jorge

¿Y si lo que quiero es que el fichero se guarde en una carpeta del cliente directamente?

# re: Como enviar archivos Binarios al Browser del Cliente en ASP.NET

Wednesday, August 30, 2006 11:08 AM by jvargas

El Cliente es quien debe dar la Orden de guardarlo en su PC.

Gracias por visitar mi blog.

Saludos,
Jhonny Vargas P.

# re: Como enviar archivos Binarios al Browser del Cliente en ASP.NET

Friday, September 22, 2006 3:22 AM by Antonio

Hola, primero darte las gracias por tu blog y segundo preguntarte si este código serviría para descargar vídeos desde un servidor web. Es que estoy haciendo un servidor web en el que los clientes se pueden descargar diversos vídeos y no sé como implementar dicho código en C#. Muchas Gracias. antoniojvaillo@hotmail.com

# re: Como enviar archivos Binarios al Browser del Cliente en ASP.NET

Sunday, September 24, 2006 3:40 PM by jvargas

Sirve perfectamente.

Saludos,

Jhonny Vargas P.

# re: Como enviar archivos Binarios al Browser del Cliente en ASP.NET

Thursday, December 21, 2006 11:21 AM by ferrillo

cómo puedo hacer para enviar varios ficheros al cliente y que éste le salga el dialog para cada uno de ellos? (si le envio un fichero no hay problema, pero con varios no puedo)

# re: Como enviar archivos Binarios al Browser del Cliente en ASP.NET

Thursday, December 28, 2006 1:37 PM by Jose David

Sirve este codigo para Visual Basic.net?? Necesito es enviar desde un cliente la imagen al servidor de imagenes. Pero... el cliente se comunica con un servicio web q es el q envia la imagen al servidor de imagenes. Los clientes no ven directamente al servidor de imagenes.

# re: Como enviar archivos Binarios al Browser del Cliente en ASP.NET

Monday, January 01, 2007 4:16 PM by jvargas

Está en Visual Basic .NET

Prueba y me cuentas.

# re: Como enviar archivos Binarios al Browser del Cliente en ASP.NET

Wednesday, August 08, 2007 9:35 AM by Ruix

Hermano: Necesito cargar imagenes de una base de datos en una tabla html y este código sólo me permite mostrar una imagen.  Necesito ayuda urgente...

Gracias

# re: Como enviar archivos Binarios al Browser del Cliente en ASP.NET

Thursday, December 20, 2007 12:22 PM by JuanVi

Hola tengo una pagina en asp que recibe un stream y lo escribe en disco en el servidor:

Set adoStream = Server.CreateObject("ADODB.Stream")

adoStream.Mode = 3 'read write

adoStream.open

adoStream.Type = 1 'adTypeBinary

adoStream.Write Request.BinaryRead(Request.TotalBytes)'escribe en el Stream los bytes enviados

adoStream.Position = 0

adoStream.SaveToFile filname, 1 'adSaveCreateNotExist'escribe en disco el stream

ESO ES PARTE DEL CODIGO EN ASP

ahora necesito enviarle el stream de datos desde C#:

Hago lo siguiente:

// Create a request using a URL that can receive a post.

           WebRequest request = WebRequest.Create("miurl.com/SubeArchivo.asp);

           // Set the Method property of the request to POST.

           request.Method = "POST";

           // Create POST data and convert it to a byte array.

           string postData = "This is a test that posts this string to a Web server.";

           byte[] byteArray = Encoding.UTF8.GetBytes(postData);

           // Set the ContentType property of the WebRequest.

           request.ContentType = "application/x-www-form-urlencoded";

           // Set the ContentLength property of the WebRequest.

           request.ContentLength = byteArray.Length;

           // Get the request stream.

           Stream dataStream = request.GetRequestStream();

           // Write the data to the request stream.

           dataStream.Write(byteArray, 0, byteArray.Length); //Write(byteArray, 0, byteArray.Length);

           dataStream.Flush();

           // Close the Stream object.

           dataStream.Close();            

           // Get the response.

           WebResponse response = request.GetResponse();

           // Display the status.

           Console.WriteLine(((HttpWebResponse)response).StatusDescription);

           // Get the stream containing content returned by the server.

           dataStream = response.GetResponseStream();

           // Open the stream using a StreamReader for easy access.

           StreamReader reader = new StreamReader(dataStream);

           // Read the content.

           string responseFromServer = reader.ReadToEnd();

           // Display the content.

           Console.WriteLine(responseFromServer);

           // Clean up the streams.

           reader.Close();

           dataStream.Close();

           response.Close();

Bueno mi problema es ese si alguien me puede ayudar le agradecer mucho.

# re: Como enviar archivos Binarios al Browser del Cliente en ASP.NET

Wednesday, December 26, 2007 12:44 PM by Mauricio Moo Aguilar

Saludos

De antemano, felicidades por tu blog y toda la informacion valiosa que colocas en el. Mi duda es acerca de que estoy tratando de leer una variable que contiene una imagen codificada en Base64 y quiero decodificar esa  texto para mostrarlo como image, sin embargo, tengo problemas con el FileStream. No se si podrias comentarme algo acerca de como decodificar codigo en Base64 en una imagen

Saludos y gracias

# re: Como enviar archivos Binarios al Browser del Cliente en ASP.NET

Wednesday, February 13, 2008 9:10 PM by Leonardo

Es posible mandar un archivo desde una aplicacion winform a una carpeta de un servidor web¿?

# re: Como enviar archivos Binarios al Browser del Cliente en ASP.NET

Tuesday, March 11, 2008 2:50 PM by jvargas

¿Es posible mandar un archivo desde una aplicacion winform a una carpeta de un servidor web?

La respuesta es si, puedes crear un servicio web que reciba tu archivo en Base64 y lo guarde en el servidor web...

# re: Como enviar archivos Binarios al Browser del Cliente en ASP.NET

Friday, March 28, 2008 2:31 PM by Jerome

Muchas gracias!

# re: Como enviar archivos Binarios al Browser del Cliente en ASP.NET

Friday, May 30, 2008 12:03 PM by Yankumi

como puedo hacer para que en ves de una imagen sea un objeto excel , el que se mande al cliente. pero sin guardar el excel en el servidor :

1.-gerar el libro por codigo

2.-mandarselo al cliente.

me pueden ayudar??? :(

# re: Como enviar archivos Binarios al Browser del Cliente en ASP.NET

Thursday, November 27, 2008 9:51 AM by Edwin

Hola de antemano muchas gracias por compartir estos conocimientos, en mi caso yo estoy haciendo una aplicacion web en asp.net, el servidor que contiene mi aplicacion web, tiene la imagen guardada en "C:\Inetpub\wwwroot\MyProyect" como puedo hacer para que desde el cliente yo pueda mostrar esa imagen..... Este es mi problema si alguien me puede ayudar se agradece mucho..

Leave a Comment

(required) 
(required) 
(optional)
(required)