Node.js之文件下载

Node.js之文件下载,主要最近解决我的一个需求。

需求描述:
如何将腾讯云上传的文件存储到本地某个目录下,如果用js来实现,纯JavaScript没有这样的功能(也许有),正好我这个项目用node.js比较多,正好可以利用node.js丰富的API实现该功能。

如下示例代码,演示下载远程文件:

源码如下(download.js):

//下载参数
var http = require("http");
var fs = require(fsvar path = require(pathvar downFlag = false;
var downUrl = ''var downFileName = ;

/**
 * 下载回调
 */
function getHttpReqCallback (imgSrc,dirName,fileName) {

    var callback = function(res) {
        console.log(request: " + imgSrc +  return status: " + res.statusCode);
        var contentLength = parseInt(res.headers['content-length']);
        
        var downLength = 0;
    
        var out = fs.createWriteStream(dirName + / fileName);
        res.on(data,function (chunk) {
            
            downLength += chunk.length;
            var progress =  Math.floor(downLength*100 / contentLength);
            var str = 下载:"+ progress +%;
            console.log(str);
            
            写文件
            out.write(chunk,function () {
                console.log(chunk.length);
                
            });
            
        });
        res.on(end;
            console.log(end downloading  imgSrc);
            if (isNaN(contentLength)) {
                console.log(imgSrc +  content length error);
                return;
            }
            if (downLength < contentLength) {
                console.log(imgSrc +  download error,try again;
            }
        });
    };

     callback;
}

*
 * 下载开始
 
function startDownloadTask (imgSrc,fileName) {
    console.log(start downloading  imgSrc);
    var req = http.request(imgSrc,getHttpReqCallback(imgSrc,fileName));
    req.on(errorrequest  error,1)">);
    });
    req.end();
}

startDownloadTask(http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.41/bin/apache-tomcat-8.5.41.tar.gz',D://1024Workspace//extensionapache-tomcat-8.5.41.tar.gz);

startDownloadTask('下载地址','本地存储路径','文件名');

代码经过测试,没有问题。

本文主要参考资料如下:
Node.js文件下载

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...