ASP.NET 文件流下载多个文件问题

anbin0814 2015-06-30 07:47:02
开发一个新功能,点击导出按钮,去数据库查询然后导出5个excel文件;

我采用的是NPOI导出;代码如下,

点击导出的时候,页面增加查询动画。

现在遇到俩个问题,第一:我循环导出2个以上文件无效,只导出一个;
第二:调用js脚本隐藏界面查询动画无效;(去掉下面循环导出就没有问题)


CFReportExportService CFES = new CFReportExportService();

List<DataTable> list = CFES.GetCFReport("", "", reportAare);//查询数据

ScriptHelp.RunJavaScript("hidemsg();", this);//隐藏界面正在查询动画
for (int i = 0; i < list.Count; i++)
{
ExcelRender.RenderToExcel(list[i], HttpContext.Current, "20150630" +i + ".xls");
}

/// <summary>
/// DataTable转换成Excel文档流,并输出到客户端
/// </summary>
/// <param name="table"></param>
/// <param name="response"></param>
/// <param name="fileName">输出的文件名</param>
public static void RenderToExcel(DataTable table, HttpContext context, string fileName)
{
using (MemoryStream ms = RenderToExcel(table))
{
RenderToBrowser(ms, context, fileName);
}
}

/// <summary>
/// 输出文件到浏览器
/// </summary>
/// <param name="ms">Excel文档流</param>
/// <param name="context">HTTP上下文</param>
/// <param name="fileName">文件名</param>
private static void RenderToBrowser(MemoryStream ms, HttpContext context, string fileName)
{
context.Response.Buffer = true;
context.Response.Clear();
context.Response.ClearContent();
context.Response.ClearHeaders();
if (context.Request.Browser.Browser == "IE")
fileName = HttpUtility.UrlEncode(fileName);
context.Response.AddHeader("Content-Disposition", "attachment;fileName=" + fileName);
context.Response.BinaryWrite(ms.ToArray());
}
...全文
354 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
淡淡的活着 2015-06-30
  • 打赏
  • 举报
回复
下载的时候选择多个就打包成压缩包 下载压缩包
devmiao 2015-06-30
  • 打赏
  • 举报
回复
可以利用弹窗实现多个文件下载 也可以打包成zip下载
winner2050 2015-06-30
  • 打赏
  • 举报
回复
一个请求下载多个文件,这样不科学。
winner2050 2015-06-30
  • 打赏
  • 举报
回复
一个请求下载多个文件,这样不科学。
winner2050 2015-06-30
  • 打赏
  • 举报
回复
一个请求下载多个文件,这样不科学。
  • 打赏
  • 举报
回复
一个请求只能下载一个文件。
  • 打赏
  • 举报
回复
你可以将这几个合并成一个,或者ajax查出五条记录后再发起对应文件个请求

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧