nodejs jquery下载本地文件 webstorm

1.使用form表单提交的方式(ajax提交不行)

$("#downloadTest").click(function() {
    $('#hidden_iframe').remove();
    var iframe = $('<iframe id="hidden_iframe" style="display:none;"></iframe>');
    var form = $('<form></form>')
        .attr('target','hidden_iframe')
        .attr('action','/service/downloadFile')
        .attr('method', 'get');
    var input = $('<input />').attr('name','fileName').attr('value', '@fileName').appendTo(form);
    iframe.append(form).appendTo(document.body);
    iframe.on('load', function() {
        window.reload();
    })
    $(form).submit();
})

2.后台(express通过路由找到/service/downloadFile接口对应的download方法

var path = require('path');
exports.download = function(req, res) {
    var paths = path.join('D:/opt/files/event/28', 'tnsnames.ora');
    res.download(paths,function(err, data) {
        if(err) {
            console.log('download faied');
            res.sendStatus(404);
        }
    })
}

猜你喜欢

转载自blog.csdn.net/id_no_chinese/article/details/73484611