使用Express和Angular下载!
我正在将expressjs用于后端API编写API下载:
这是我的快递代码:
app.get('/download/:file(*)',(req, res) => {
var file = req.params.file;
var fileLocation = path.join('./uploads',file);
console.log(fileLocation);
res.download(fileLocation, file);
});
在Angular的.ts文件中,我编写了要下载的代码,如下所示:
public download(fileName: string): void {
var user = this._authService.getUser();
var token = JSON.parse(user).token || this.__authService.token;
var url = `${supportURL}/api/download/` + fileName;
const httpOptions = {
headers: new HttpHeaders({
'responseType': 'blob',
'Content-Type': 'application/json',
'Authorization': token
})
};
this._httpClient.get(url, httpOptions).subscribe(res => {
window.open(window.URL.createObjectURL(res));
});
}
在html文件中,我这样称呼:
<a (click) = "downloadFile(item.filename)"> Download</a>
但是当我单击下载时,它不是下载文件,没有显示任何错误,但是无法下载文件。我不知道为什么?在网络控制台模式下调试时,它还会显示我要下载但无法下载的映像,我错了吗?请告诉我如何。非常感谢你