Php 在浏览器中查看pdf流
我有一个PDF文件要在浏览器选项卡中查看。我知道我可以直接使用文件链接来显示它,但我想读取变量中的文件内容并使用变量来显示文件。原因是,我想在读取变量后立即删除文件 PHP: 阿贾克斯: 我得到的结果是二进制内容。有人能帮忙吗,我的代码出了什么问题 更新: 将我的ajax代码更改为下面的代码,现在我得到了一个空白的pdf页面Php 在浏览器中查看pdf流,php,laravel,laravel-5.8,Php,Laravel,Laravel 5.8,我有一个PDF文件要在浏览器选项卡中查看。我知道我可以直接使用文件链接来显示它,但我想读取变量中的文件内容并使用变量来显示文件。原因是,我想在读取变量后立即删除文件 PHP: 阿贾克斯: 我得到的结果是二进制内容。有人能帮忙吗,我的代码出了什么问题 更新: 将我的ajax代码更改为下面的代码,现在我得到了一个空白的pdf页面 $('body').on('click', '.printInvoice', function () { var purchase_id = $(this).dat
$('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 !!!");
}
});
Laravel实际上有内置的返回功能。这将自动设置正确的标题,以便在浏览器中显示文件
return response()->file($tmppdf);
也许:
return Response::make($fdata, 200, [
'Content-Type' => 'application/pdf',
'Content-Disposition' => 'inline; filename="'.$tmppdf.'"'
]);
您是从控制器函数返回php代码吗?是的,它是一个laravel 5.8 controllerIt,但不能解决我的问题,因为它是从文件加载的,我无法删除该文件。我想将文件内容加载到变量并删除该文件。为什么不先存储
response()->file($tmppdf)
的响应,然后删除该文件,然后返回已存储的响应?e、 g.$fileResponse=response()->file($tmppdf);/*删除文件的代码位于此处*/return$fileResponse代码>您可以帮助我如何将其转换为Ajax成功调用吗。如我的问题更新中所述;我试图将“window.open(data,“'u blank');”放在成功部分,但在这种情况下,我得到了一个空白页面。
return response()->file($tmppdf);
return Response::make($fdata, 200, [
'Content-Type' => 'application/pdf',
'Content-Disposition' => 'inline; filename="'.$tmppdf.'"'
]);