terça-feira, 16 de outubro de 2012
Como conservar uma imagem em um banco de dados SQL Server?
A maioria das aplicações web tem um monte de imagens utilizadas. Estas imagens são armazenadas geralmente em uma pasta do servidor web e são alcançadas dando o caminho relativo para o arquivo com respeito para a pasta raiz do site. . Lucro líquido de ser a plataforma para a aplicação distribuída agora, ASP.Net pode ser usado para armazenar imagens que são pequenas ser armazenadas em um banco de dados como SQL Server 2000 e versões posteriores. Para este efeito, o banco de dados SQL Server fornece um tipo de dados chamado "imagem" que é usado para armazenar imagens no banco de dados.
Para acessar estas imagens armazenadas no banco de dados que iremos utilizar as classes ADO.Net. Para saber como inserir e recuperar uma imagem no banco de dados SQL Server, você pode criar uma página. Aspx que pode ter um controle HtmlInputFile que é usado para selecionar o arquivo de imagem que é ser salvo no banco de dados. Você também pode criar um controle de caixa de texto no qual você pode adicionar o nome da imagem ou algum comentário ou um ID de imagem para a imagem salva. Use um controle de botão para carregar a imagem para o banco de dados. Namespaces como System.Data.SqlClient, System.Drawing, System.Data, System.IO e System.Drawing.Imaging são usadas nessa tarefa.
Na propriedade OnClick do botão, você pode escrever o seguinte código para fazer o upload de uma imagem para o banco de dados.
/ / Criar um byte [] para o arquivo de imagem que é carregado
int imagelen = Upload.PostedFile.ContentLength;
byte [] picbyte = new byte [imagelen];
Upload.PostedFile.InputStream.Read (picbyte, 0, imagelen);
/ / Insira o ID de imagem e imagem em banco de dados
SqlConnection conn = new SqlConnection (@ "dar a seqüência de conexão aqui ...");
tentar
{
conn.Open ();
SqlCommand cmd = new SqlCommand ("INSERT INTO ImageTable" + "(ImageField, ImageID) valores (@ pic, @ ImageId)", conn); cmd.Parameters.Add ("@ pic", picbyte);
cmd.Parameters.Add ("@ ImageId", lblImageID.Text);
cmd.ExecuteNonQuery ();
}
finalmente
{
Conn.Close ();
}
Você também pode escrever o código acima em uma função e chamar essa função no evento OnClick do botão de upload. O código dado acima executa as seguintes etapas do processo de inserção de uma imagem na base de dados.
1. Obter o comprimento do conteúdo da imagem que está a ser carregado
2. Criar um byte [] para armazenar a imagem
3. Leia o fluxo de entrada do arquivo postado
4. Criar um objeto de conexão
5. Abra o objeto de conexão
6. Criar um objeto de comando
7. Adicionar parâmetros para o objeto de comando
8. Executar o comando sql usando o método ExecuteNonQuery do objeto de comando
9. Feche o objeto de conexão
Para recuperar a imagem do banco de dados SQL que você pode realizar os seguintes passos.
1. Crie um objeto MemoryStream. O código pode ser algo como, MemoryStream mstream = new MemoryStream ();
2. Criar um objeto de conexão
3. Abrir a conexão com o banco de dados
4. Criar um objeto de comando para executar o comando para recuperar a imagem
5. Use o método do objeto de comando ExecuteScalar para recuperar a imagem
6. Moldar a saída do método ExecuteScalar ao do byte []
byte [imagem] = (byte []) command.ExecuteScalar ();
7. Escreva o mstream.Write fluxo (imagem, 0, image.Length);
8. Criar um objeto de bitmap para manter o fluxo de bitmap Bitmap = novo Bitmap (stream);
9. Defina o tipo de conteúdo para "image / gif" Response.ContentType = "image / gif";
10. Use o método Save do objeto bitmap para a saída da imagem para a OutputStream.
Bitmap.Save (Response.OutputStream, ImageFormat.Gif);
11. Feche a conexão
12. Feche a mstream.Close fluxo ();
Utilizando os passos acima, você pode recuperar e exibir a imagem do banco de dados para a página web.
Você pode usar estes algoritmos e aproveitar a "imagem" tipo de dados disponíveis no banco de dados SQLServer 2000 para armazenar pequenas imagens que correspondem a um determinado registro na tabela do banco de dados. Este método de armazenar evita a tediosa tarefa de seguir o caminho da pasta web, se as imagens são armazenadas em uma pasta web....
Assinar:
Postar comentários (Atom)
Nenhum comentário:
Postar um comentário