我只是尝试从服务器下载文件并在浏览器中提示下载,供用户查看。
我现在拥有的: 客户端
export function downloadTemplateAction(questionnaire) {
return dispatch => {
dispatch(downloadTemplateRequestAction(questionnaire));
return request
.get(downloadGETUrl)
.end((err, res) => {
if (err) {
console.log("Download ERROR", err)
dispatch(downloadTemplateFailureAction(err, questionnaire));
} else {
console.log("Download Success", res.body)
dispatch(downloadTemplateSuccessAction(res.body, questionnaire));
}
});
}
}
服务器:
export function downloadTemplateDocument(req, res){
res.download('template/Example.docx');
res.end();
}
我面临两个问题:
首先:当尝试通过客户端功能下载文件时,响应正文为空,但成功后再也没有了。
第二次:通过浏览器localhost:3002 / api / download联系get API时,下载有效,但收到的文件为空。应该有文字。
我在这里做错了什么?
答案 0 :(得分:0)
浏览器无法提示下载进度,因为您的请求是通过XMLHttpRequest发送的。 浏览器需要对文件进行物理访问才能知道任何下载。
您可以使用download attribute告诉浏览器下载链接的资源。