【问题标题】:Download file by NodeJS and SailsJS通过 NodeJS 和 SailsJS 下载文件
【发布时间】:2019-06-01 08:24:21
【问题描述】:

我需要制作一个API来下载静态文件test.js

当我用 Postman 测试 API 时,结果只是显示文件的内容,而不是下载。

这样好吗?

async downloadTemplate(req , res) {
    let fs = require('fs');
    if(fs.existsSync('downloads/test.js'))
    {   
        res.setHeader('Content-disposition', 'attachment; filename=' + 'test.js');

        let filestream = fs.createReadStream('downloads/test.js');
        //return res.download('downloads/test.js' , 'test.js')
        return filestream.pipe(res);
    } else {
        res.json({error : "File not Found"});
    }
}

【问题讨论】:

    标签: javascript node.js sails.js


    【解决方案1】:

    不应使用 Postman 下载文件。

    将使用 API 的客户端应决定如何处理结果。

    如果客户端将成为浏览器 - 只需使用浏览器测试 api,而不是使用邮递员。

    如果到服务器的链接是 html - 使用 href 中的 download 属性

    如果你正在使用 Axios,你可以找到你需要的帮助here

    【讨论】:

    • 我如何在 react.js 中使用它,我在 react js 和 downloadFile() 中制作了它,我只是调用了 api .. 但没有下载文件@yeya { downloadFile(); }} 下载 >
    • 你不需要onClick,只需将链接放在href上:<a href="downloads/test.js" className="link" download>。检查这个w3schools.com/tags/att_a_download.asp
    • 我该怎么做>>>响应不是“downloads/test.js”我不知道网址..
    • 我应该在 static jwtRequest(urlPath, options) { const headers = new Headers({ 'Content-Type': 'application/json', "access_token": AuthModel.token() } );返回_request(urlPath,选项,标题); }
    • 这是响应正文:(...) bodyUsed: false headers: Headers {} ok: true redirected: false status: 200 statusText: "OK" type: "cors" url: "@987654324 @" proto:响应文件未下载..我该怎么办?!
    猜你喜欢
    • 2015-02-04
    • 2011-04-19
    • 2022-01-06
    • 2013-08-20
    • 2020-05-03
    • 2022-11-02
    • 2012-05-11
    • 1970-01-01
    • 2021-05-13
    相关资源
    最近更新 更多