ASP.net C# Multiple Documents on One Response Obje

2019-04-30 02:49发布

I have this code

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();
}

but I have 3 documents that I need to send to the client. I'd rather not have to make the user click 3 buttons to get them the 3 txt files. Is there a way to send all 3 on one reponse?

2条回答
在下西门庆
2楼-- · 2019-04-30 03:07

Nope, multipart attachments for download (like as in email) aren't supported for security reasons. It's called a "drive-by download."

Note that Gmail handles this by dynamically zipping up the files. You should too. http://forums.asp.net/t/1240811.aspx

查看更多
The star\"
3楼-- · 2019-04-30 03:17

This can be done according to the article "Download multiple files in one http request" on motobit.com.

However it's not how HTTP was designed and following those steps may break at any time depending on client and server configuration.

查看更多
登录 后发表回答