Gravar Arquivos para o banco de dados

Gravação de arquivos em um banco de dados ( SQL )

Este artigo é destinado a todos que tenham necessidade de importar arquivos de qualquer tipo para o banco de dados, seja o arquivo *.txt,imagem, etc ...
Escrevi este artigo pois enfrentei este tipo de problema na empresa onde precisava criar um meio de gravar arquivos em *.pdf para serem importados para o banco e disponibilizados para os clientes efetuarem o download através do nosso site.
O código é em C# e bem simples.
 
 
Basta usar um Fileupload para pegar o arquivo onde estiver armazenado.
Abaixo o designer.
Você pode colocar opção de texto para identificar o arquivo com o nome e/ou extensão e no meu caso eu tive q colocar também o mês correspondente .
 
 
 
Abaixo segue o código.
( neste caso eu usei dentro do botão para gravar )
 

protected void Button3_Click(object sender, EventArgs e)

{

DBAccess db = new DBAccess();

db.AddParameter("@TIPO", DropDownList2.Text);

db.AddParameter("@MES", DropDownList3.Text);

byte[] imageBytes = new byte[FileUpload1.PostedFile.InputStream.Length + 1];

FileUpload1.PostedFile.InputStream.Read(imageBytes, 0, imageBytes.Length);
 

db.AddParameter("@ARQUIVO", imageBytes);

db.AddParameter("@NOMEFILE", txtnomefile.Text);
 

db.ExecuteNonQuery("INSERT INTO TB_ARQUIVOS_EMPRESA(TIPO,MES,ARQUIVO,NOMEARQUIVO) " +

"VALUES ( @USUARIO,@EMPRESA,@TIPO,@MES,@ARQUIVO,@EMAIL,@DATA,@NOMEFILE)");

}

Na opção Byte[] é onde pelo o conteúdo do "FileUpload" e transforma em "imagembytes" para com isso possa ser salvo no SQL.
NO banco terá que ser criado o campo como "IMAGE" para que possa armazenar o arquivo 
 
                                
AGORA O MEIO PARA RETORNO DO AQUIVO.
 
O comando também é bem simples você vai procurar o arquivo no banco e transformalo no que "erar".
 

using (SqlConnection Conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ASPNETDBConnectionString"].ConnectionString))

{

string SQL = "SELECT ARQUIVO FROM dbo.TB_ARQUIVOS_EMPRESA WHERE IDFILE = " + Convert.ToInt32(Request.QueryString["IDFILE"]);

SqlCommand myCommand = new SqlCommand(SQL, Conn);

Conn.Open();

byte[] buffer = (byte[])myCommand.ExecuteScalar();

SqlDataReader myReader = myCommand.ExecuteReader();

if (myReader.Read())

{

Response.AddHeader("content-disposition", "attachment; filename=INFORMATIVO.pdf" ) ;

Response.ContentType = "application/pdf";

Response.BinaryWrite((byte[])myReader["ARQUIVO"]);

Response.End();

}

É isso caso precisem de ajuda em mas algo estamos a disposicão.
 
At.
Flávio Renato
 
 

Artigos relacionados