Como faço para enviar um blob binário para um navegador cliente?
Pergunta
Pardon os mudos pergunta novato aqui; programação web não é o meu forte ... (rubor)
Eu tenho uma página aspx executado em um servidor web. Eu tenho um blob (matriz de bytes) contendo qualquer tipo de arquivo binário, além de um nome de arquivo.
Gostaria de empurrar este arquivo a ser baixado através do browser para o cliente, e abriu usando qualquer aplicação é padrão para este tipo de arquivo. Eu realmente não quero salvar o blob como um arquivo no servidor; que vai deixar uma confusão terrível de limpeza que eu simplesmente não quero pensar.
Eu tentei googling esta pergunta, mas eu acho que eu estou usando as palavras erradas.
Isso realmente deveria ser óbvio como fazê-lo, mas eu estou tendo nenhuma alegria.
O que é o truque?
Obrigado!
Solução
Response.BinaryWrite(byteArray);
Você também deve definir o tipo de conteúdo
Response.ContentType = "application/pdf";
Mas isso vai ser baseada em seu tipo de arquivo.
E o nome do arquivo (e tudo junto) é feito assim
Response.AddHeader("content-disposition",
String.Format("attachment;filename={0}", fileName));
Response.ContentType = "application/pdf";
Response.BinaryWrite(byteArray);
Outras dicas
Em primeiro lugar, você tem que saber o tipo mime. Depois de saber isso, você pode definir a propriedade Response.ContentType. Depois disso, é só usar Response.BinaryWrite (). Se você não definir a propriedade ContentType primeiro, o cliente terá quase nenhuma chance de abrir o arquivo corretamente.