1
FileSaverを使用して、生成されたPDFをサーバーからダウンロードしようとしています。しかし、それは仕事ではありません。生成されたPDFのダウンロードクライアント側のFileSaverとサーバ側のスナッピー
Laravelフレームワークでは、Snappyを使用してHTMLからPDFファイルを作成します。
$pdf = \PDF::loadView('pub.view', $data);
//$pdf->save('myfile.pdf'); //It's saved successfully.
return $pdf->download('printing.pdf');
クライアントからは、PDFファイルを取得するためにAngularJSの$ resourceサービスを適用します。
printPDF: {
method: 'GET',
headers: {
accept: 'application/pdf'
},
responseType: 'arraybuffer',
cache: true,
transformResponse: function (data) {
var pdf;
if (data) {
pdf = new Blob([data], {
type: 'application/pdf'
});
}
return {
response: pdf
};
},
url:'/u/:id/exportTopdf',
params:{id:'@id'}
}
FileSaverはこのファイルを保存します。
myService.printPDF({id: myId},
function successCallback(response){
saveAs(response, 'filename.pdf'); //FileSaver function
}, function errorCallback(response){
});
実行している場合、問題はブラウザコンソールで起こるです:
`TypeError: Failed to execute 'createObjectURL' on 'URL': No function was found that matched the signature provided`.
私はFileSaverが問題になりますが、私はそれを修正する方法がわからないと思います。
固定しました。私の問題はレスポンスがblobファイルではないということです。レスポンスはオブジェクトです。私は応答でBLOBデータを抽出し、saveAs関数を入れなければなりません。私はブラウザのダウンローダでダウンロードします。しかし、FDM(フリーダウンロードマネージャー)は、ブラウザのダウンロード後にそれをキャッチします。 FDMをブラウザの前にキャッチさせるにはどうすればいいですか? –
FDM(無料ダウンロードマネージャー)はBLOBファイルをダウンロードできません。 –