Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Claudio Neto

FileStream para arquivo e disponibilizar para download

Recommended Posts

Boa tarde.

 

Tenho em meu banco de dados arquivos salvos em formato binário. Preciso, em certo momento do sistema, disponibilizar esses arquivos para download.

 

Consegui já transformá-los em "arquivos físicos" novamente, mas tenho um problema. Eles precisam ficar em uma pasta temporária e depois serem excluídos automaticamente.

 

O que tenho de código até o momento é:

FileStream download = new FileStream(caminho + "\\" + arq.Nome, FileMode.Create, FileAccess.Write);
            download.Write(arq.Arquivo, 0, arq.Arquivo.Length);
            download.Close();

            Response.Redirect(caminho + "\\" + arq.Nome);

Nesse momento o arquivo está sendo criado em C:\temp, só que ele ficando aí não consigo disponibilizar para baixar. Se eu criar uma pasta temporário dentro do diretório do sistema resolve o problema do download, mas como faço para que o arquivo suma após ser baixado?

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ao invés de vc escrever o arquivo, tenta pegar o binario e ja disponibilizar para download.

da uma olhada neste código:

using (FileStream fs = File.OpenRead(path))
{
    int length = (int)fs.Length;
    byte[] buffer;

    using (BinaryReader br = new BinaryReader(fs))
    {
        buffer = br.ReadBytes(length);
    }

    Response.Clear();
    Response.Buffer = true;
    Response.AddHeader("content-disposition", String.Format("attachment;filename={0}", Path.GetFileName(path)));
    Response.ContentType = "application/" + Path.GetExtension(path).Substring(1);
    Response.BinaryWrite(buffer);
    Response.End();
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Show de bola, Ivan. Mas você sabe se isso serve para qualquer extensão?

 

Posso ter diversos tipos de arquivos, como PDF, ZIP, JPG, TIFF, etc...

 

Valeuzão!


Ivan, já testei aqui e vi que dá certo sim com várias extensões.

 

Brigadão cara, me ajudou muito.

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.