我正在尝试生成PDF并在按钮单击时打开模态。 在模式中,生成的PDF应该加载到DOM中。
要生成PDF,我使用了axios:
axios.post('/preview', formData)
.then(function (response) {
this.previewPdf = response.data;
}.bind(this));
生成的PDF名称在控制器中返回并保存在this.previewPdf
变量中。
然后我使用laravel URL通配符在模式中加载PDF。
<div class="modal-body">
<embed :src="'/preview/' + previewPdf" width="100%" height="600" type='application/pdf'>
</div>
路由/preview/{pdfname}
的控制器返回PDF。
return Storage::disk('local')->get('temppdf/' . $pdfname);
但是,如果我打开模态,PDF似乎已加载(网络预览):
%PDF-1.7
%����
2 0 obj
<</Type/XObject
等
但是模态只显示空<embed>
。虽然它的src是正确的src="preview/pdfname.pdf"
。
可能导致此问题的原因是什么?
答案 0 :(得分:1)
我找到了解决问题的方法。
在我返回PDF的控制器中,我需要返回一个标题..之前没有标题的内容类型只是html。
使用这行代码可以工作:
return response(Storage::disk('local')->get('temppdf/' . $pdfname), 200)
->header('Content-Type', 'application/pdf');