Pergunta

Eu tenho esse código

private void writeReport(IReport report, string reportName)
{
    string reportString = report.makeReport();
    ASCIIEncoding encoding = new ASCIIEncoding();
    byte[] encodedReport = encoding.GetBytes(reportString);
    Response.ContentType = "text/plain";
    Response.AddHeader("Content-Disposition", "attachment;filename="+ reportName +".txt");
    Response.OutputStream.Write(encodedReport, 0, encodedReport.Length);
    Response.End();
}

mas eu tenho 3 documentos que eu preciso enviar para o cliente. Eu prefiro não ter que fazer o usuário clique 3 botões para obtê-los os 3 arquivos txt. Existe uma maneira de enviar todos os 3 em um reponse?

Foi útil?

Solução

Não, anexos com várias partes para download (como como em e-mail) não são suportados por razões de segurança. É chamado de "drive-by download."

Note que o Gmail lida com isso de forma dinâmica fechando os arquivos. Você deveria também. http://forums.asp.net/t/1240811.aspx

Outras dicas

Isto pode ser feito de acordo com o "Baixar arquivos de múltiplas em um http request" artigo sobre motobit.com .

No entanto, não é como HTTP foi projetado e seguir esses passos podem quebrar a qualquer momento, dependendo do cliente e configuração do servidor.

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