如何使用Jquery在adobe reader中查看PDF二进制数据

时间:2013-12-03 05:31:04

标签: jquery asp.net-mvc-4 asp.net-web-api

我正在以二进制格式上传和检索数据库中的PDF附件文件在检索附件时成功完成上传我从控制器获取响应到jQuery但是在这里我无法以PDF格式显示二进制数据

我的控制器代码:

public HttpResponseMessage Get()
{
            pdfDbEntities db = new pdfDbEntities ();
            var data = from i in db.EmpTables
                       where i.Empno == 12
                       select i;
            EmpTable pdf = (EmpTable)data.SingleOrDefault();
            byte[] pdfData = pdf.Empattch;
            MemoryStream ms = new MemoryStream(pdfData);
            HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
            response.Content = new StreamContent(ms);
            response.Content.Headers.ContentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment");
            response.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application / pdf");
            return  response;  
}

jQuery代码:

$("#btnShow").click(function () {
                var options = {};
                options.url = "/api/Pdf";
                options.type = "GET";
                options.dataType = false;
                options.contentType = false;
                options.success = function (retData) {
                    $("body").append("<iframe src='" + retData + "' style='' ></iframe>")
                    window.open(retData);

                };
                options.error = function (x,y,z) {
                    debugger
                    alert(err.statusText);
                };
                $.ajax(options);
            });

1 个答案:

答案 0 :(得分:0)

将您的iframe src设置为URL。您正在传递实际数据,它也需要在浏览器和服务器之间完成的标题信息,以便正确呈现。

我不知道asp,但你使用的是:

   $("body").append("<iframe src='" + options.url + "' style='' ></iframe>")