情况:
前端:Vue.后端:Laravel.
在Web应用程序内部,我需要让用户下载某些pdf文件:
代码:
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?
谢谢!