jquery - Blueimp file upload, how do you know which file the progress callback is for? -
how know file progress callback for?
even though set sequentialuploads true, in ie10 (not chrome/firefox/safari), when select multiple files upload @ same time, data.files array in add callback contains multiple files. other browsers, add callback called once each file, array 1 file.
so loop handle each file in add callback, no problem.
however, i'm updating progress callback, , don't see way know file progress for. callback gets 2 parameters, "e" , "data", , data object has loaded , total values give me progress... file? of processing callbacks have data.index tell file is, upload progress doesn't have that.
is missing feature, or missing something?
my code kind of ugly right because i'm trying resolve these new ie10 issues. prior counting on fact data.files array 1 item. here code anyway, i'll try clean when have chance:
self.initfileupload = function(elem) { $(elem).fileupload({ datatype: 'json', global: false, sequentialuploads: true, forceiframetransport: !!ie, formdata: { hostsid: app.viewmodels.main.hostsid() }, done: function(e, data) { (var x = 0; x < data.result.files.length; x++) { var file = data.result.files[x]; var u = file.myobj; u.sid = file.sid; console.log("done: " + u.filename); u.done(true); } }, add: function(e, data) { (var x = 0; x < data.files.length; x++) { var file = data.files[x]; var u = []; u.filename = file.name; u.size = file.size; u.perc = ko.observable(0); u.error = ko.observable(""); u.done = ko.observable(false); var ext = file.name.split('.').pop().tolowercase(); u.image = utils.isimageext(ext); self.uploads.push(u); file.myobj = u; u.jqxhr = data.submit(); } }, fail: function(e, data) { (var x = 0; x < data.result.files.length; x++) { var file = data.result.files[x]; var u = file.myobj; if (data.jqxhr && data.jqxhr.responsetext) u.error(data.jqxhr.responsetext); else u.error("unknown error"); console.log("fail: " + u.filename); } }, progress: function(e, data) { console.log(e); console.log(data); (var x = 0; x < data.files.length; x++) { var file = data.files[x]; console.log(file); var u = file.myobj; u.perc(parseint(file.loaded / file.total * 100, 10)); console.log("perc: " + u.filename + " " + u.perc()); } }, progressall: function(e, data) { self.uploadperc(parseint(data.loaded / data.total * 100, 10)); } }); }
Comments
Post a Comment