2017-08-22 7 views
2

PDFを生成し、ボタンをクリックしてモーダルを開こうとしています。 モーダルでは、生成されたPDFをDOMにロードする必要があります。PDFをLaravelルートとvuejs axiosでモーダルでロードする

私はaxiosを使用するPDF生成するには:

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> 

そして、ルート​​のコントローラがPDFを返します。

%PDF-1.7 %���� 2 0 obj <</Type/XObject など

は、しかし、モーダルは、単に空<embed>を示しています。私はモーダルを開くと

return Storage::disk('local')->get('temppdf/' . $pdfname); 

しかしPDFは(ネットワークプレビュー)ロードされているようです。それのsrcは正しくsrc="preview/pdfname.pdf"ですが。

この問題の原因は何ですか?

答えて

1

私の問題の解決策が見つかりました。

私のPDFを返すコントローラでは、ヘッダを返す必要がありました。前のヘッダを持たないcontent-typeはちょうどhtmlでした。

return response(Storage::disk('local')->get('temppdf/' . $pdfname), 200) 
       ->header('Content-Type', 'application/pdf'); 
:それが動作するコード行で

関連する問題