我使用下面的方法来创建一个excel文件。Excel是正确创建的,并且是在根文件夹中创建的,其中也是我正在使用的template.xlsx。
app.get('/proceso/:id', function(req, res)
{
res.download( __dirname + "/report.xlsx")
});
如果我直接在浏览器中调用路由,例如localhost:7555/proceso/2,则会生成文件并自动开始下载。
我想使用ajax get请求来调用路由,
函数reporte_excel(idp){
$.ajax({
type : "GET",
contentType : "application/json",
url : "/proceso/"+ idp,
success: function (data)
{
}
});
};
现在,文件已生成,但没有开始下载。在ajax成功的过程中,有没有办法在客户端启动下载?或者应该如何在服务器端启动下载?
发布于 2019-01-30 10:41:45
试一试
window.location = "URL to your file download script"
发布于 2019-01-30 22:01:56
要使用res.download( __dirname + "/public/report.xlsx")
启动下载,它必须与声明为app.use(express.static(__dirname + '/public'))
的文件夹相匹配
因此,当excel文件生成时,它必须在匹配的文件夹中生成。
在我的例子中是这样的
workbook.toFileAsync("./public/report.xlsx").then(() => {
res.download( __dirname + "/public/report.xlsx")
})
https://stackoverflow.com/questions/54432552
复制相似问题