Regarding jQuery File Upload, there is a progress
event which passes back a data
object, which as I understand it, reports the progress for each file.
I'm adding the file and progress bars to my UI via the add()
event, and I want to later update their respective progress bars inside the progress()
event. The problem I'm having is how do I match them up?
I need to give each file a unique ID so I can pair them, but one isn't provided as far as I can see. How are we supposed to do this?
Is there perhaps some JavaScript hashcode for each File object?
Some code:
$('#fileupload').fileupload({
url: 'api/combox_upload.php',
dataType: 'json',
dropZone: $dropZone,
done: function (e, data) {
$.each(data.result, function(index, file) {
// indicate completeness
});
},
add: function(e, data) {
$.each(data.files, function(index, file) {
console.log(file);
$file_uploads.append($('<li>').text(file.name));
});
data.submit(); // start upload immediately
},
progress: function(e, data) {
console.log(data);
}
});
I think I can attach a unique ID to each file by utilizing $.data
like so:
var fileId = 0;
$('#fileupload').fileupload({
url: 'api/combox_upload.php',
dataType: 'json',
dropZone: $dropZone,
done: function (e, data) {
$.each(data.result, function(index, file) {
// indicate completeness
});
},
add: function(e, data) {
$.each(data.files, function(index, file) {
//console.log(file);
console.log(filename, fileId);
$.data(file, 'id', fileId++);
$file_uploads.append($('<li>').text(file.name));
});
data.submit(); // start upload immediately
},
progress: function(e, data) {
var progress = parseInt(data.loaded / data.total * 100, 10);
$.each(data.files, function(index, file) {
console.log($.data(file,'id'), file.name, progress);
});
//console.log(data);
}
});
The part that I'm confused about now is that in the progress event it doesn't just give you a single file, it gives you an array holding 1 file... I'm not sure if that if it's guaranteed to always have exactly 1 file in there (data.files
) or not.
progress
event manually for each file...that's all done automatically. How would I set a different context for each file? Posted some code BTW. – Mabe