5

我对此很陌生,所以请耐心等待。这是我的代码。即使选择了多个文件,它也只会下​​载一个文件。

foreach(String fileName in fileNameList)
{
    FileInfo updateFile = new FileInfo("C:/inetpub/wwwroot/w4/DanyaWebReports/Data/" + fileName);
    Response.ContentType = "application/octet-stream";
    Response.AddHeader("content-disposition", "attachment;filename=\"" + Path.GetFileName(updateFile.FullName) + "\"");
    Response.AddHeader("content-length", updateFile.Length.ToString());
    Response.TransmitFile(updateFile.FullName);
    Response.Flush();
}
4

1 回答 1

14

这不是要走的路,您可以在服务器端压缩所有选定的文件并仅下载 zip 文件,或者您可以尝试使用客户端代码打开多个下载窗口,但在这种情况下,我认为某些浏览器可能会阻止带有弹出窗口阻止程序的弹出窗口。

例如,您创建一个名为 download.aspx 的页面(甚至只是一个 http 处理程序),然后通过 JavaScript 多次调用它:

window.open("download.aspx?id=id of file1");
window.open("download.aspx?id=id of file2");

在这里查看一些可以进一步阐述的想法:ASP.NET 下载多个文件

于 2013-01-08T22:07:04.690 回答