1.iframe方式:
function download () {
var exportLink = '...' //看清楚!这边自己加下载链接!!!
var iframe = document.createElement('iframe')
iframe.src = exportLink
iframe.style.display = 'none'
document.body.appendChild(iframe)
2.前端第二个实现是使用a标签,
<a href="/downloadfilerouter"></a>
3.前端第三个实现是使用一个div标签,使用click事件,创建一个a标签
<div name="downloadfile" onclick="downloadFileFunction()">DownLoader</div>
function downloadFileFunction() {
let a = document.createElement('a');
a.href = '/downloadfilerouter';
a.click();
}
后端使用nodejs,我在这里把下载的文件固定了,也可以自己传人一个变量进入,在这里需要导入两个模块
var fs = require('fs');
var path = require('path');
router.get('/downloadfilerouter', function (req, res, next) {
var filename = 'desktop.ini';
var filepath = path.join(__dirname, '../uploader/' + filename);
var stats = fs.statSync(filepath);
if (stats.isFile()) {
res.set({
'Content-Type': 'application/octet-stream',
'Content-Disposition': 'attachment; filename=' + filename,
"Content-Length": stats.size
});
fs.createReadStream(filepath).pipe(res);
} else {
res.end(404);
}
});