我正在尝试将pdf文件从节点服务器下载到React Client,但是当我打开它时,它显示为空白

时间:2019-05-18 07:33:23

标签: 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/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 Code打开它时,它显示出如下内容:

%PDF-1.4 %äüöß 2 0 obj <</Length 3 0 R/Filter/FlateDecode>> stream x��\K�d�m������n�u�F���Ad�d

1 个答案:

答案 0 :(得分:1)

只需添加responseType作为标头,其值为arraybuffer。你应该很好。

axios.get('/api/downloadcv', {responseType: 'arraybuffer'})

希望有帮助!