Return PDF to WebPage from ASHX

前端 未结 3 1354
再見小時候
再見小時候 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: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();   
    

提交回复
热议问题