Reputation: 437
I have the following xHttpRequest and trying to get the progressbar working. The progress Event is triggered. But it seems to be done once and is not updated anymore
uploadFile: function (file, progressBar, infoText, count) {
var xhr = new XMLHttpRequest(),
me = this;
progressBar = progressBar || 0;
infoText = infoText || null;
xhr.open("post", me.requestURL, true);
xhr.addEventListener('progress', function(evt) {
// debugger;
progressBar.update( { percent: (evt.loaded / file.size)*100 } );
});
// Upload complete
xhr.addEventListener('load', function(e) {
var target = e.target,
response = Ext.decode(target.responseText);
if (response.success == false && response.blacklist == true) {
Shopware.Notification.createGrowlMessage(me.snippets.blackListTitle, Ext.String.format(me.snippets.blackListMessage, response.extension));
}
if (response.return == "check") {
me.infoMessageBox(response,count);
}
Does anybody have an idea ?
Upvotes: 0
Views: 77
Reputation: 337
If you are uploading the file you must listen to xhr.uploads progress:
xhr.upload.addEventListener('progress', function(evt) {
progressBar.update( { percent: (evt.loaded / file.size)*100 } );
});
Or like this:
xhr.upload.onprogress = function(evt) {
progressBar.update( { percent: (evt.loaded / file.size)*100 } );
}
It's better to use evt.total
instead of file.size
.
More: link to MDN
Upvotes: 1