Imagenes de en SQL Server

12/06/2006 - 11:23 por Fran Peula Ariza | Informe spam
Buenas.
Tengo un problema insertando imágenes en SQL Server. Mi problema es que en
lugar de coger la imagen de un picture box e insertarla en SQL Server, mi
aplicación recoge la imagen del picture box, la escribe en un fichero XML
junto con más info, envía ese fichero a través de un servicio web de un
cliente a un servidor, y en el servidor recupera la imagen del fichero XML y
la inserta en la base de datos.

Para lograr esto, convierto la imagen en un byte[] a través de un memory
stream. Después la convierto a Base 64. En el servidor hago el camino
inverso, y al recuperar la supuesta imagen de la base de datos, me salta una
excepción de "Parámetro utilizado no válido".

Yo pienso que puede ser por algo relacionado con la serialización, mapa de
aracteres al escribir la imagen en byte[], algo con el xml que genero y que
envío al servidor... no sé.

A ver si me podéis echar un cable.

Saludos y gracias

Fran Peula Ariza

Preguntas similare

Leer las respuestas

#1 solusoft
12/06/2006 - 17:22 | Informe spam
En un proyecto, insertábamos imágenes en BBDD, a partir de un array de bytes
y no teníamos problemas a recuperarlo.

Como dices, debe ser un tema de transmisión de esos bytes. No sé mucho de
los WebServices, pero has probado a no utilizar Base64 ??

Saludos.

"Fran Peula Ariza" escribió:

Mostrar la cita
#2 Vyacheslav Popov
12/06/2006 - 19:18 | Informe spam
Yo he tenido el mismo problema...
Para recuperar o actualizar la imágen:

private Image ByteToImage(byte[] datos)
{
if (datos == null)
return null;
else
return new Bitmap(new MemoryStream(datos));
}

private byte[] ImageToByte(Image datos)
{
if (datos == null)
return null;
else
{
MemoryStream ms = new MemoryStream();
datos.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);

byte[] buffer = new byte[ms.Length];
ms.Position = 0;
ms.Read(buffer, 0, buffer.Length);

return buffer;
}

}

Luego el tipo de datos usado para enviar la imagen es "base64Binary"

Saludos.

"Fran Peula Ariza" escribió en el
mensaje news:
Mostrar la cita
#3 Fran Peula Ariza
13/06/2006 - 09:39 | Informe spam
Muchas gracias. Lo he resuelto con algo parecido, pero sigo utilizando
base64. He utilizado el tipo de datos text en mi base de datos, insertando un
string en lugar de un array de bytes, pero el mecanismo es el mismo.

Muchas gracias por vuestras respuestas

Saludos

Fran
#4 Vyacheslav Popov
13/06/2006 - 10:38 | Informe spam
En la base de datos he utilizado (Image)

el de base64 es para DataSet


"Fran Peula Ariza" escribió en el
mensaje news:
Mostrar la cita
Ads by Google
Search Busqueda sugerida