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); } }) }