微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用res.download

如何解决使用res.download

我有一条这样的路线:

exports.downloadFile = app => {
    app.get('/install/download',(request,result) => {
        result.download(`${__dirname}../../../public/exec/install.exe`,error => {
            if (error) console.log("[FAILURE][RESOURCE] Could not download installation file\r\n");
            else console.log("[SUCCESS][RESOURCE] Installation file has been downloaded\r\n");
        });
    });
}

通过这种途径,我试图确保当我单击按钮时,此文件被下载。当我单击该按钮时,会收到一条消息,指示成功,但是我的浏览器未指示任何下载,也没有提示我执行任何操作。我是否需要添加一些其他组件以确保其正常工作?

这是我客户端进行提取代码

const downloadFile = () => {
    const url = `${window.location.protocol}//${window.location.host}/install/download`;
    fetch(url)
        .catch(error => alertMessage(error.message));
}

我假设可能与没有.then来处理提取有关,但是我不确定应该在其中添加什么,而且浏览器自动处理的文档给我的印象是这部分?

解决方法

您忘记传递一个下载名称参数。 请按如下所示修改下载功能。

result.download(`${__dirname}../../../public/exec/install.exe`,'install.exe',error => {
            if (error) console.log("[FAILURE][RESOURCE] Could not download installation file\r\n");
            else console.log("[SUCCESS][RESOURCE] Installation file has been downloaded\r\n");
        });

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。