Last active
November 28, 2015 00:06
-
-
Save KhanMaytok/afdc44ca2ec8391b5ec4 to your computer and use it in GitHub Desktop.
Mostrar barra de descarga al descargar fichero node
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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