Node断点下载
?
function downloadFile(url,savefile){//如果文件已存在,獲取長度var receivedBytes=0; if(fs.existsSync(savefile)){var stats = fs.statSync(savefile);var receivedBytes=stats.size; console.log("續傳");}//發送請求時,增加一個range頭var opts={headers:{'Range':`bytes=${receivedBytes}-`}}console.log(opts);var req = https.request(url,opts);// 通過flag指定文件是新建還是追加var file = fs.createWriteStream(savefile,{start:receivedBytes,flags:receivedBytes>0?'a+':'w'});//收到請求的回復后req.on('response', function(res){var len = parseInt(res.headers['content-length'], 10);//當前內容總長度var rangelen = res.headers['content-range'];//獲取內容的字節范圍res.pipe(file);var bar = new ProgressBar(savefile+' downloading [:bar] :rate/bps :percent :etas', {complete: '=',incomplete: ' ',width: 20,total: len});//回復數據流收到數據,更新進度條res.on('data', function (chunk) {bar.tick(chunk.length);});//回復數據流結束res.on('end', function () {console.log('\n');});})req.end(); }?
總結
- 上一篇: Windows Server 2019
- 下一篇: Matab 读取修改 XML