- 准备外网资源地址,利用前端的 ajax 或 axios 技术来完成文件下载
- 此时会发现 请求跨域了,我们可以利用node + koa 搭建代理服务器来完成对资源的请求
- node 服务器中 准备 接口, 去请求外网资源地址
router.get('/abc', async (ctx, next) => {
// 地址可能会失效,需要大家自己去准备一下
var mp3_url = "https://ld-sycdn.kuwo.cn/b82dc6e3ace7633ef0a7b79a7bceef32/628f4a38/resource/n3/68/76/2597978293.mp3"
ctx.body = await new Promise((resolve, reject) => {
axios({
method: "get",
url: mp3_url,
responseType: 'stream',
})
.then((res) => {
resolve(res.data)
}).catch((err) => {
console.log("请求出错")
console.log(err)
reject(err)
})
})
});
- 前端js代码
// 导入 js-file-download 模块
var fileDownload = require('js-file-download');
axios({
method: 'get',
url: "http://localhost:3000/abc",
responseType: 'blob',
})
.then(res => {
console.log('请求成功。。。。。');
fileDownload(res.data, './static/测试.mp3');
})
.catch(err => {
alert('请求出错');
alert(JSON.stringify(err));
});
网友评论