Javascript I';我正试图将一个pdf文件从节点服务器下载到react客户端,但当我打开它时,它显示为空白
我只是从节点读取文件中的数据,并将内容类型作为“application/pdf”发送 我的节点版本是10 serverside.js:Javascript I';我正试图将一个pdf文件从节点服务器下载到react客户端,但当我打开它时,它显示为空白,javascript,html,node.js,reactjs,axios,Javascript,Html,Node.js,Reactjs,Axios,我只是从节点读取文件中的数据,并将内容类型作为“application/pdf”发送 我的节点版本是10 serverside.js: var file = path.join(__dirname,'Rajesh.pdf'); fs.readFile(file, function(err, data){ res.contentType("application/pdf"); res.send(data) }) clientside.js: axios.get('/api/dow
var file = path.join(__dirname,'Rajesh.pdf');
fs.readFile(file, function(err, data){
res.contentType("application/pdf");
res.send(data)
})
clientside.js:
axios.get('/api/downloadcv')
.then(res => {
const url = window.URL.createObjectURL(new Blob([res.data]
,{type: "application/pdf"}))
var link = document.createElement('a');
link.href = url;
link.setAttribute('download', 'resume.pdf');
document.body.appendChild(link);
link.click();
})
pdf正在下载,但没有显示任何内容,当我用Vs代码打开它时,它显示了如下内容:
%PDF-1.4
%äüöß
20 obj
流动
x��\K�D�M������N�U�F���公元�d
只需添加responseType
作为带有值arraybuffer
的标题。你该走了
axios.get('/api/downloadcv',{responseType:'arraybuffer'})
希望有帮助 为什么要将pdf内容放在dom上?一个简单的“在新窗口中打开”或“下载”属性将执行相同的操作。。。谢谢你,为什么没有人这样回答。这一整天我都在工作。你救了我的命,兄弟,浪费了大约12个小时的时间。这是正确的答案。。OP应该接受这一点。。