首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用异步调用在浏览器中启动下载文件

使用异步调用在浏览器中启动下载文件
EN

Stack Overflow用户
提问于 2019-01-30 10:28:29
回答 2查看 32关注 0票数 0

我使用下面的方法来创建一个excel文件。Excel是正确创建的,并且是在根文件夹中创建的,其中也是我正在使用的template.xlsx。

代码语言:javascript
运行
复制
app.get('/proceso/:id', function(req, res)
{
            res.download( __dirname + "/report.xlsx")
});

如果我直接在浏览器中调用路由,例如localhost:7555/proceso/2,则会生成文件并自动开始下载。

我想使用ajax get请求来调用路由,

函数reporte_excel(idp){

代码语言:javascript
运行
复制
$.ajax({
type : "GET",
contentType : "application/json",
url : "/proceso/"+ idp,
success: function (data)
    {


    }
});

};

现在,文件已生成,但没有开始下载。在ajax成功的过程中,有没有办法在客户端启动下载?或者应该如何在服务器端启动下载?

EN

回答 2

Stack Overflow用户

发布于 2019-01-30 10:41:45

试一试

window.location = "URL to your file download script"

票数 0
EN

Stack Overflow用户

发布于 2019-01-30 22:01:56

要使用res.download( __dirname + "/public/report.xlsx")启动下载,它必须与声明为app.use(express.static(__dirname + '/public'))的文件夹相匹配

因此,当excel文件生成时,它必须在匹配的文件夹中生成。

在我的例子中是这样的

代码语言:javascript
运行
复制
workbook.toFileAsync("./public/report.xlsx").then(() => {
            res.download( __dirname + "/public/report.xlsx")
          })
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54432552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档