怎样使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