我正在以二进制格式上传和检索数据库中的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);
});
答案 0 :(得分:0)
将您的iframe src设置为URL。您正在传递实际数据,它也需要在浏览器和服务器之间完成的标题信息,以便正确呈现。
我不知道asp,但你使用的是:
$("body").append("<iframe src='" + options.url + "' style='' ></iframe>")