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ó:

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
Respuesta Responder a este mensaje
#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:
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
Respuesta Responder a este mensaje
#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
Respuesta Responder a este mensaje
#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:
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


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida