ASP.NET add a httphandler to edit downloaded file name

前端 未结 3 1681
野趣味
野趣味 2021-01-12 20:46

I have in my project a page DownloadDocument.aspx and it\'s codebhind is DownloadDocument.aspx.cs

In my DownloadDocument.aspx

相关标签:
3条回答
  • 2021-01-12 21:40

    You can try with this code

    <httpHandlers>
      <add 
       verb="POST"  
       path="*.jpg,*.jpeg,*.bmp,*.tif,*.tiff" 
       type="YourHandler" />
    </httpHandlers>
    
    0 讨论(0)
  • 2021-01-12 21:44

    it depends on type of file you are trying to download...because every request is gone through HTTPHandler's ProcessRequest. and it's checks each and every request one by one.. You need to add any HTTPHandler to your project and need to add something like this in your web.config.

     <httpHandlers>
      <add path="*.jpg,*.jpeg,*.bmp,*.tif,*.tiff" verb="*" type="NameofYourHandler" />
    </httpHandlers>
    

    This will check your request for every Image type.. mentioned in path attribute

    Edit :

    <add verb="*" path="*DownloadDocument.aspx " type="NameofYourHandler"/>
    
    0 讨论(0)
  • 2021-01-12 21:46

    How about using a generic handler (.ashx) for this?

    You need to add loading specific information, like filename, contenttyp and the content itself. The sample should give you a good headstart.

    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;
            }
        }
    }
    

    The generic handler is called from a URL, like this:

    <a href="/GetDownload.ashx?IDDownload=1337">click here to download</a>
    
    0 讨论(0)
提交回复
热议问题