我已经做了几个小时了,却毫无进展。我试图从我的服务器上下载一个PDF文件。我目前在本地主机上运行这个程序。当我打开PDF文件时,PDF是一个白色的空白页。谁能让我知道我错过了什么。我已经检查了保存在服务器上的PDF文件,它是好的。
App - React,Express。
NPM--Axios,file-saver,html-pdf。
路径 - Front end React
.then(() =>
axios.get(
'http://localhost:3000/retailers/fetch/pdf',
{
headers: {
'Content-type': 'application/json',
'x-auth-token': this.props.token
}
},
{ responseType: 'blob' }
)
)
.then((res) => {
console.log('dd', res);
const pdfBlob = new Blob([res.data], { type: 'application/pdf' });
saveAs(pdfBlob, 'newPdf.pdf');
});
路径 - Backend express
const options = {
root: path.join(__dirname, '../'),
dotfiles: 'deny',
headers: {
'x-timestamp': Date.now(),
'x-sent': true
}
};
var fileName = 'test.pdf';
res.sendFile(fileName, options, function (err) {
if (err) {
console.log('err', err);
next(err);
}
});
所以答案很简单。responseType: 'blob'
是在错误的地方。
axios.get(
'http://localhost:3000/retailers/fetch/pdf',
{
headers: {
'Content-type': 'application/json',
'x-auth-token': this.props.token
},
responseType: 'blob'
}
)