Return PDF to WebPage from ASHX

前端 未结 3 1291
再見小時候
再見小時候 2020-12-18 14:37

I have a web page with a \"download\" link on it.

Using jQuery I do an Ajax Get to a ASHX file.

In the ASHX I get the Stream of the file. I then convert the

相关标签:
3条回答
  • 2020-12-18 15:21

    Through use of context.Response.TransmitFile, a more concise way to serve a PDF from an ashx web handler is:

    context.Response.Clear();
    context.Response.ContentType = "application/pdf";
    string filePath = System.Web.HttpContext.Current.Server.MapPath(@"~\path-to\your-file.pdf");
    context.Response.TransmitFile(filePath);
    
    0 讨论(0)
  • 2020-12-18 15:32

    Try this (do not use .get):

    window.open('/UserControls/download.ashx?format=pdf&bookId=' + bookId, "pdfViewer");
    

    To prevent the "File does not begin with '%PDF" error, use Response.BinaryWrite:

    context.Response.Clear(); 
    context.Response.ClearContent(); 
    context.Response.ClearHeaders(); 
    context.Response.ContentType = "application/pdf";
    
    Stream fileStream = publishBookManager.GetFile(documentId);
    byte[] buffer = new byte[16 * 1024];
    using (MemoryStream ms = new MemoryStream())
    {
      int read;
      while ((read = fileStream.Read(buffer, 0, buffer.Length)) > 0)
      {
        ms.Write(buffer, 0, read);
      }
    }
    
    context.Response.BinaryWrite(data); 
    context.Response.Flush();   
    
    0 讨论(0)
  • 2020-12-18 15:35

    i am also using window.open for getting the pdf. but it is always displayed while try to use same URL through address bar directly without logged in. how to solve this one.

    0 讨论(0)
提交回复
热议问题