Foros del Web » Programando para Internet » ASPX (.net) »

Problema al guardar imagen

Estas en el tema de Problema al guardar imagen en el foro de ASPX (.net) en Foros del Web. Hola a todos, estoy trabajando con C# y Flash. Desde Flash subo un byte array que contiene los datos de una imagen. Desde C# necesito ...
  #1 (permalink)  
Antiguo 09/01/2012, 08:48
 
Fecha de Ingreso: julio-2010
Mensajes: 298
Antigüedad: 13 años, 9 meses
Puntos: 8
Problema al guardar imagen

Hola a todos, estoy trabajando con C# y Flash.
Desde Flash subo un byte array que contiene los datos de una imagen.
Desde C# necesito capturar este byte array y convertirlo en una imagen. El problema que tengo es que con el código que ven a continuación se graba la imagen en el servidor pero cuando la intento abrir me dice que "la imagen está dañada".
Alguien sabe a que se debe? Donde está el error? Hay alguna forma más eficiente de hacerlo? No consigo dar con la tecla

Código:
string now = DateTime.Now.ToString().Replace("/", "_").Replace(":", "-");
context.Request.ContentType = "application/octet-stream";
StreamReader sr = new StreamReader(context.Request.InputStream);
                
int size = context.Request.ContentLength;
byte[] bytes = new byte[size];
                
StreamWriter sw = new StreamWriter("c:/docs/uploadFiles/" + now + ".jpg");

sw.Write(sr.ReadToEnd());
sr.Close();
sw.Close();
sr.Dispose();
sw.Dispose();
sr = null;
sw = null;
Muchas gracias
  #2 (permalink)  
Antiguo 10/01/2012, 06:54
 
Fecha de Ingreso: julio-2010
Mensajes: 298
Antigüedad: 13 años, 9 meses
Puntos: 8
Respuesta: Problema al guardar imagen

Hola a todos, he conseguido resolverlo. Dejo el código a continuacón por si a alguien le puede servir.
Código:
Stream rs = (Stream)context.Request.InputStream;
                               
FileStream fs = new FileStream("c:/docs/uploadFiles/image.jpg", FileMode.Create);
byte[] byWork = new byte[2047];
int iWork;

do
{
     iWork = rs.Read(byWork, 0, byWork.Length);
     fs.Write(byWork, 0, iWork);
} while (iWork != 0);

fs.Flush();
fs.Close();
rs.Close();
Un saludo

Etiquetas: c#
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:20.