Usuário com melhor resposta
Gravar imagem no BD

Pergunta
-
Tenho uma imagem jpg em uma pasta no servidor. Tenho de gravar ela em um BD
Li vários artigos dizendo pra transforma-la em um array de bytes e eles utilizam o fileupload. Mas minha imagem ja esta carregada no servidor. E não é permitido fazer Fileupload.Filename = "foto.jpg" pois filename é readonly
Respostas
-
Escreva essas duas métodos em uma classe qualquer de sua preferencia:
public static byte[] ConvertImageToByteArray(System.Drawing.Image image, ImageFormat imageFormat) { if (image == null) return null; MemoryStream ms = new MemoryStream(); image.Save(ms, imageFormat); return ms.ToArray(); } public static System.Drawing.Image ConvertByteArrayToImage(byte[] byteArray) { if (byteArray == null || byteArray.Length == 0) { return (null); } return (System.Drawing.Image.FromStream(new MemoryStream(byteArray))); }
Para pegar a imagem que ta no servidor e transforma-la em Array de Bytes seria mais ou menos assim dependendo do caminho da imagem
System.Drawing.Image img = System.Drawing.Image.FromFile(Server.MapPath(".") + "/pastadafoto/1.jpg"); byte[] imgByte = ConvertImageToByteArray(img, ImageFormat.Jpeg);
Para gravar na base veja o video!
http://www.youtube.com/watch?v=UxZ2v7Yd9Jo
- Marcado como Resposta jjunior.net sexta-feira, 28 de fevereiro de 2014 01:52
Todas as Respostas
-
Bom dia jjunior.net,
Certo, deixe-me ver se entendi, a sua imagem já esta em um servidor e esse servidor é o mesmo que possui o seu banco de dados certo?
Giovani Cruzara – Microsoft Contingent Staff
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.
Msdn Community Support
Por favor, lembre-se de “Marcar como Resposta” as respostas que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde. -
Isso mesmo
É uma imagem de uma webcam. Tiro a foto e ela armazena no servidor. Quero gravar ela no BD de depois apaga-la da pasta do servidor
Tentei armazenar ela no computador do usuario para depois salvar no BD. Mas esbaro sempre na mesma dúvida. Como carregar ja que o fileupoload.filename é readonly?- Editado jjunior.net terça-feira, 25 de fevereiro de 2014 15:40
-
-
Escreva essas duas métodos em uma classe qualquer de sua preferencia:
public static byte[] ConvertImageToByteArray(System.Drawing.Image image, ImageFormat imageFormat) { if (image == null) return null; MemoryStream ms = new MemoryStream(); image.Save(ms, imageFormat); return ms.ToArray(); } public static System.Drawing.Image ConvertByteArrayToImage(byte[] byteArray) { if (byteArray == null || byteArray.Length == 0) { return (null); } return (System.Drawing.Image.FromStream(new MemoryStream(byteArray))); }
Para pegar a imagem que ta no servidor e transforma-la em Array de Bytes seria mais ou menos assim dependendo do caminho da imagem
System.Drawing.Image img = System.Drawing.Image.FromFile(Server.MapPath(".") + "/pastadafoto/1.jpg"); byte[] imgByte = ConvertImageToByteArray(img, ImageFormat.Jpeg);
Para gravar na base veja o video!
http://www.youtube.com/watch?v=UxZ2v7Yd9Jo
- Marcado como Resposta jjunior.net sexta-feira, 28 de fevereiro de 2014 01:52