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!

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top