首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Ihttphandler下载多个文件

使用Ihttphandler下载多个文件
EN

Stack Overflow用户
提问于 2010-10-20 21:38:52
回答 1查看 2.1K关注 0票数 0

太棒了!

我正在对一个报告脚本,运行一系列的报告(pdf)上的按钮点击。报告是在web服务器上创建的,然后我希望用户可以选择下载文件。我已经写好了从服务器下载一个文件的脚本。但是我不确定如何下载多个文件?(可能会有50个左右)

在我运行一个报告之后,我将用户重定向到一个http处理程序脚本。

代码语言:javascript
复制
Response.Redirect("Download.ashx?ReportName=" + "WeeklySummary.pdf");

public class Download : IHttpHandler {


public void ProcessRequest(HttpContext context)
{


   StringBuilder sbSavePath = new StringBuilder();
   sbSavePath.Append(DateTime.Now.Day);
   sbSavePath.Append("-");
   sbSavePath.Append(DateTime.Now.Month);
   sbSavePath.Append("-");
   sbSavePath.Append(DateTime.Now.Year);

    HttpContext.Current.Response.ClearContent();
    HttpContext.Current.Response.ContentType = "application/pdf";
    HttpResponse objResponce = context.Response;
    String test = HttpContext.Current.Request.QueryString["ReportName"];
    HttpContext.Current.Response.AppendHeader("content-disposition", "attachment; filename=" + test);
    objResponce.WriteFile(context.Server.MapPath(@"Reports\" + sbSavePath + @"\" + test));    
    HttpContext.Current.Response.Flush();
    HttpContext.Current.Response.Clear();
    HttpContext.Current.Response.End();

}
public bool IsReusable { get { return false; } } 

}

提前感谢,如果你还想看我的剧本,请让我知道。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-10-20 21:56:26

我马上看到的两个选项是一个显而易见的选项,那就是简单地重复调用HTTP处理程序。另一种方法是在服务器上对它们进行压缩,然后通过网络发送一个压缩文件。您可以使用内置的GZipStream类来完成此任务。

此外,您还需要在处理程序中添加一些代码,以便在这些临时文件下载后对其进行清理。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3978446

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档