我有一个带有“下载”链接的网页。将ASHX的PDF返回到网页
使用jQuery我做一个Ajax获取一个ASHX文件。
在ASHX中,我得到了文件的流。然后,我将该流转换为一个字节数组,并将字节数组返回给调用的html页面;
jQuery的
$(".DownloadConvertedPDF").click(function() {
var bookId = $(this).attr("bookId");
$.get('/UserControls/download.ashx?format=pdf&bookId=' + bookId, {}, function (data) { });
});
C#
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.OutputStream.Write(buffer, 0, buffer.Length);
我没有得到一个错误,但也PDF不会显示在屏幕上。
理想情况下,我希望将PDF返回并使用jQuery在浏览器内的独立选项卡中启动pdf。
我该如何做到这一点或我做错了什么?
@griegs:使用'window.open'方法。我不认为'.get'会起作用。 – Mrchief
嗯,这是好得多,但我得到一个错误“文件不以'%PDF-'开头 – griegs
这是可怕的错误!请参阅我的更新 – Mrchief