我有一个PDF文件,我想在浏览器选项卡中查看。我知道我可以直接使用文件链接来显示它,但是我想读取变量中文件的内容并使用该变量来显示文件。背后的原因是,我要在读取变量后立即删除文件。
PHP:
$fdata = file_get_contents($tmppdf);
header("Content-type: application/pdf");
header("Content-disposition: inline; filename=".$tmppdf);
return $fdata;
Ajax:
$('body').on('click', '.printInvoice', function () {
var purchase_id = $(this).data("id");
// window.location.href = "/purchases/print" + '/' + purchase_id;
window.open('/purchases/print' + '/' + purchase_id, '_blank');
});
我得到的是二进制内容。有人可以帮忙,我的代码有什么问题。
更新: 将我的Ajax代码更改为下面,现在我得到了一个空白的pdf页面
$('body').on('click', '.printInvoice', function () {
var purchase_id = $(this).data("id");
$.ajax({
type: "GET",
url: "/purchases/print" + '/' + purchase_id,
success: function (data) {
var blob = new Blob([data], {type: 'application/pdf'});
var blobURL = window.URL.createObjectURL(blob);
window.open(blobURL,'_blank');
},
error: function (data) {
alert("Unable to Print !!!");
}
});
答案 0 :(得分:1)
Laravel实际上具有内置功能来返回file responses。这将自动设置正确的标题,以便在浏览器中显示文件。
return response()->file($tmppdf);
答案 1 :(得分:0)
也许:
LD_LIBRARY_PATH=/u01/app/oracle/product/11.2.0/xe/lib