从API Laravel下载pdf vuejs

时间:2017-09-18 14:38:03

标签: php laravel-5 vuejs2

你好,我有一个VUEJS和后端Laravel 5.4的前端。 我会下载保存在 storage / folder / file.pdf

中的pdf

现在我从VUEJS进行ajax调用:

downloadAttachment(){
                axios.get('/url/attachment/' + this.resource.id)
                    .then(function (response) {

                    })
                    .catch(function (error) {

                    });
                }

在后端我有一个返回pdf文件的函数:

public function download(){
  $headers = array(
                    'Content-Type: application/pdf'
                );
  return response()->download(storage_path('folder/file.pdf'), 'namefile.pdf' , $headers)->setStatusCode(200);
}

但是现在我如何才能在前端展示下载iframe?

我尝试过:

var blob = new Blob([response.data],{type:headers['content-type']});
var link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.download = "Filename";
link.click();

但它不起作用,我怎样才能在pdf文件下载的前端iframe中显示?

1 个答案:

答案 0 :(得分:0)

尝试以下操作:window.open(URL)

此处“ URL”应为实际的URL字符串,因此可能,您将必须将控制器的响应更改为类似以下内容:return response()->json(<url string>)