当前位置:编程学习 > C#/ASP.NET >>

怎样使ASP.NET 客户端用户同时下载多个文件(错误信息:“服务器无法在发送 HTTP 标头之后清除标头”)

我现在想实现点击button后下载服务器上某一文件夹中的多个文件!
Click事件代码如下:
    string[] dirs = Directory.GetFiles("D:\\Temp\\");
        foreach (string dir in dirs)
        {
            string strEnd = dir.Substring(dir.LastIndexOf(".") + 1);
            FileInfo DownloadFileDfd = new FileInfo(dir);
            Response.Clear();
            Response.ClearHeaders();
            Response.Buffer = false;
            Response.ContentType = "application/octet-stream";
            Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(DownloadFileDfd.FullName, System.Text.Encoding.UTF8));
            Response.AppendHeader("Content-Length", DownloadFileDfd.Length.ToString());
            Response.WriteFile(DownloadFileDfd.FullName);
            Response.Flush();
        }
但当遍历到第二个文件时提示“服务器无法在发送 HTTP 标头之后清除标头”
哪位高手指点一下?不胜感激! --------------------编程问答-------------------- 在线等!!! --------------------编程问答-------------------- up --------------------编程问答-------------------- 大家帮帮忙吧 --------------------编程问答-------------------- 我想这样说,不可以的.
因为一个浏览器只能下载一个文件.
因此,你们以在后台把这个文件夹压缩成RAR的形式,现在下载.
或者用另外一个方法.JS配合服务端
<script language=javascript>
function downFiles(arrFileName)
{
     for(var i = 0;i<arrFileName.length;i++)
     {
          window.open("downFile.aspx?fileName=" + arrFileName[i];
     }
}
var arr = "<%=fileNames%>.split(":");
downFiles(arr);
//CS
public string fileNames
{
      get
      {
             return "1.txt:2.txt:3.txt";
      }
}

--------------------编程问答-------------------- 但文件名称是有改变的啊? --------------------编程问答-------------------- 是啊。老提示这个错误。真是麻烦的。 --------------------编程问答-------------------- 楼主,这问题解决了吗?都4,5年了 --------------------编程问答-------------------- 这个问题有没有解决方法呀?我也很想知道啊 --------------------编程问答-------------------- 楼主,这个问题解决了没有?
能提供个解决方案么?
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,