Node.js 实时显示文件下载进度并支持取消下载
2021/7/17 20:06:20
本文主要是介绍Node.js 实时显示文件下载进度并支持取消下载,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Nodejs功能模块:
简介如下:
https => 建立远程网络连接
request => 用来请求资源
progress => 实时获取下载进度
fs => 用来创建读写流
详情请查询Nodejs官网:http://nodejs.cn/api/http.html
代码如下:
/** * 将远程资源下载到指定目录 * @param {String} fileName 文件名 * @param {String} remoteUrl 远程路径 * @param {String} outPutPath 本地输出路径 * @param callback '() => {}'; */ let downloadRequest = null; export let _remoteFile2Local = (fileName, remoteUrl, outPutPath, callback) => { https.get(remoteUrl + fileName, (res) => { if (res.statusCode === 200) { res.setEncoding(null); // 设置编码 let str = progress({ length: res.headers['content-length'], time: 500 /* ms */ }); str.on('progress', function (progress) { console.log('percentage:', progress.percentage) // 下载进度 }); let url = remoteUrl + fileName; // 远程文件下载地址 let globalRequest = request.get({url: url, encoding: null}, (err, requestRes, body) => { if (err) throw err callback && callback(); }); // 两个pip(通道) => 下载进度监控、存储到本地路径 globalRequest.pipe(str).pipe(fs.createWriteStream(path.join(outPutPath, fileName))); downloadRequest = globalRequest; // 用于取消下载 } else { console.log('远程地址出错:', res.statusMessage); } }) } /** * 取消下載 * @param callback '() => {}'; */ export let _abortDownload2 = (callback) => { downloadRequest.abort(); // 停止网络请求 // to do 删除本地已经下载的文件/夹 callback && callback(); }
这篇关于Node.js 实时显示文件下载进度并支持取消下载的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-21Vue3教程:新手入门到实践应用
- 2024-12-21VueRouter4教程:从入门到实践
- 2024-12-20Vue3项目实战:从入门到上手
- 2024-12-20Vue3项目实战:新手入门教程
- 2024-12-20VueRouter4项目实战:新手入门教程
- 2024-12-20如何实现JDBC和jsp的关系?-icode9专业技术文章分享
- 2024-12-20Vue项目中实现TagsView标签栏导航的简单教程
- 2024-12-20Vue3入门教程:从零开始搭建你的第一个Vue3项目
- 2024-12-20从零开始学习vueRouter4:基础教程
- 2024-12-20Vuex4课程:新手入门到上手实战全攻略