相关疑难解决方法(0)

Vue + Laravel:如何正确下载PDF文件?

情况:

前端:Vue.后端:Laravel.

在Web应用程序内部,我需要让用户下载某些pdf文件:

  • 我需要Laravel获取该文件并将其作为API GET请求的响应返回.
  • 然后在我的Vue Web应用程序中,我需要获取文件并下载它.

代码:

API:

$file = public_path() . "/path/test.pdf";

$headers = [
    'Content-Type' => 'application/pdf',
];
return response()->download($file, 'test.pdf', $headers);
Run Code Online (Sandbox Code Playgroud)

网络应用:

downloadFile() {
  this.$http.get(this.apiPath + '/download_pdf')
    .then(response => {
      let blob = new Blob([response.data], { type: 'application/pdf' })
      let link = document.createElement('a')
      link.href = window.URL.createObjectURL(blob)
      link.download = 'test.pdf'
      link.click()
    })
}
Run Code Online (Sandbox Code Playgroud)

结果:

使用此代码,我设法下载pdf文件.问题是pdf是空白的.

不知怎的,数据被破坏了(不是这个特殊的pdf文件的问题,我尝试了几个pdf文件 - 相同的结果)

来自服务器的响应:

来自服务器的响应本身很好:

在此输入图像描述

PDF:

问题可能出在pdf文件中.它肯定看起来已损坏的数据.这是它看起来如下的摘录response.data:

在此输入图像描述

问题:

如何使用Laravel为Web应用程序正确下载pdf文件和Vue?

谢谢!

javascript php pdf laravel vue.js

7
推荐指数
2
解决办法
1万
查看次数

标签 统计

javascript ×1

laravel ×1

pdf ×1

php ×1

vue.js ×1