Skip to content

Instantly share code, notes, and snippets.

@KhanMaytok
Last active November 28, 2015 00:06
Show Gist options
  • Save KhanMaytok/afdc44ca2ec8391b5ec4 to your computer and use it in GitHub Desktop.
Save KhanMaytok/afdc44ca2ec8391b5ec4 to your computer and use it in GitHub Desktop.
Mostrar barra de descarga al descargar fichero node
var fs = require('fs');
var http = require('http');
var fsize;
var skBar = document.getElementById('progressbar');
//Función que maneja la descarga del archivo
var download = function(url, dest, cb) {
var file = fs.createWriteStream(dest);
var request = http.get(url, function(response) {
//Para ver el progreso, primero necesitamos saber el tamaño total del archivo
fsize = response.headers['content-length'];
response.on('data', function(data) {
file.write(data);
//Llamamos a la función progress y le entregamos el ID de la barra de progreso
progress(100 - (((fsize - file.bytesWritten) / fsize) * 100), skBar);
}).on('end', function() {
//Si acabamos, llenamos por completo la barra
progress(100, skBar);
file.end();
});
}).on('error', function(err) { //Manejamos los errores
fs.unlink(dest); // Eliminamos el archivo
if (cb) cb(err.message);
});
};
function progress(percent, element) {
console.log("Download: " + parseInt(percent) + " %");
element.value = percent;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment