Reputation: 799
I'm able to download a file.But I want to find the download status of a file i.e,whether the download is complete (or) how much % it is completed.
Can anyone please help me out on this issue ...
My index.js :
var express = require('express');
var router = express.Router();
var fs = require('fs');
var request = require('request');
var download = function(uri, filename, callback){
request.head(uri, function(err, res, body){
console.log('content-type:', res.headers['content-type']);
console.log('content-length:', res.headers['content-length']);
request(uri).pipe(fs.createWriteStream(filename)).on('close', callback);
});
};
download('https://www.google.com/images/srpr/logo3w.png', 'google.png', function(){
console.log('done');
});
module.exports = router;
Upvotes: 0
Views: 124
Reputation: 2895
Have you seen this node package before?
https://www.npmjs.com/package/request-progress
You use it together with request to report on progress like so:
var request = require('request');
var progress = require('request-progress');
// Note that the options argument is optional
progress(request('http://google.com/doodle.png'), {
throttle: 2000, // Throttle the progress event to 2000ms, defaults to 1000ms
delay: 1000 // Only start to emit after 1000ms delay, defaults to 0ms
})
.on('progress', function (state) {
console.log('received size in bytes', state.received);
// The properties bellow can be null if response does not contain
// the content-length header
console.log('total size in bytes', state.total);
console.log('percent', state.percent);
})
.pipe(fs.createWriteStream('doodle.png'))
Hopefully that helps!
Upvotes: 1