ASP.NET添加httphandler来编辑下载的文件名

我的项目中有一个DownloadDocument.aspx页面,它的代码隐藏是DownloadDocument.aspx.cs

在我的DownloadDocument.aspx我有一个锚点,它采用如下动态链接:

 <a id="downloadLink" runat="server" style="margin:5px" href="https://stackoverflow.com/questions/12318715/asp-net-add-a-httphandler-to-edit-downloaded-file-name/">Download current file 

我想添加一个httphandler来控制下载的文件名,我该怎么做? 提前致谢。

如何使用通用处理程序(.ashx)?

您需要添加特定于加载的信息,例如filename,contenttyp和内容本身。 样本应该给你一个良好的开端。

 public class GetDownload : IHttpHandler { public void ProcessRequest(HttpContext context) { if (!string.IsNullOrEmpty(context.Request.QueryString["IDDownload"])) { context.Response.AddHeader("content-disposition", "attachment; filename=mydownload.zip"); context.Response.ContentType = "application/octet-stream"; byte[] rawBytes = // Insert loading file with IDDownload to byte array context.Response.OutputStream.Write(rawBytes, 0, rawBytes.Length); } } public bool IsReusable { get { return false; } } } 

通用处理程序是从URL调用的,如下所示:

 click here to download 

它取决于您尝试下载的文件类型…因为每个请求都通过HTTPHandlerProcessRequest 。 并且它会逐个检查每个请求。您需要在项目中添加任何HTTPHandler ,并且需要在web.config添加类似的内容。

     

这将检查您对path属性中提到的每种Image类型的请求

编辑:

  

您可以尝试使用此代码