Download de um documento do BD para o computador

12/08/2014

0

Olá pessoal.

Estou fazendo um código em C# que faz upload de documentos para o BD e dps faz o download deses documentos para o computador.
Porém, ao invés de escolher fazer download pelo número do ID, teria como mostrar a lista de documentos do BD e clicando em um desses documentos, fazer o download?

 protected void btnUpload_Click(object sender, EventArgs e)
        {
            //Verifica se algum arquivo foi selecionado
            if (upload.HasFile)
            {
                //Instancia a conexão com banco,capturando a string de conexão no web.config
                using (SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["DefaultConnection"].ToString()))
                {
                    conn.Open();
                    string comandoSQL = "insert into TB_Documento(NomeDocumento,Documento) values(@NomeDocumento,@Documento)";
                    using (SqlCommand cmd = new SqlCommand(comandoSQL, conn))
                    {
                        //Parâmetros
                        cmd.Parameters.Add("@NomeDocumento", SqlDbType.NVarChar, 100).Value = upload.FileName;
                        cmd.Parameters.Add("@Documento", SqlDbType.VarBinary).Value = upload.FileBytes;

                        //executa a inserção
                        cmd.ExecuteNonQuery();
                    }
                }
            }
        }


        protected void btnDownload_Click(object sender, EventArgs e)
        {

            SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["DefaultConnection"].ToString());

            conn.Open();



            SqlCommand oSqlCommand = new SqlCommand();

            oSqlCommand.Connection = conn;
            oSqlCommand.CommandText = "SELECT Documento FROM TB_Documento Where CodDocumento = 1;";
            oSqlCommand.CommandType = CommandType.Text;

            SqlDataReader oSqlDataReader = oSqlCommand.ExecuteReader();

            byte[] buffer = null;

            if (oSqlDataReader.Read())
            {
                buffer = (byte[])oSqlDataReader.GetValue(0);
            }



            conn.Close();

            StreamWriter oStreamWriter = new StreamWriter(@"C:\Users\thais.nogueira\Documents\Visual Studio 2012\Projects\Upload\Copy_file.pdf");

            oStreamWriter.BaseStream.Write(buffer, 0, buffer.Length);

            oStreamWriter.Close();
            oStreamWriter.Dispose();

        }
Thaís Nogueira

Thaís Nogueira

Responder

Post mais votado

15/08/2014

Perfeitamente, você pode fazer um select, trazendo o nome e o código do documento e listá-lo em um grid, por exemplo. Quando o usuário selecionar uma linha, você terá acesso também ao código do registro selecionado, então é só efetuar o mesmo procedimento.

Joel Rodrigues

Joel Rodrigues
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar