$('#fileupload').fileupload({
dataType: 'json',
maxChunkSize: 100000,
add: function(e, data){
var that = this;
$.getJSON('server/php/', {file: data.files[0].name}, function (result) {
var file = result.file;
data.uploadedBytes = file && file.size;
$.blueimp.fileupload.prototype.options.add.call(that, e, data);
});
},
done: function(e, data){
$.each(data.result.files, function (index, file) {
});
},
progress: function(e, data){
var progress = parseInt(data.loaded / data.total * 100, 10);
data.context.find($('.progress_bar_file')).css('width', progress + '%');
},
progressall: function(e, data){
var progress = parseInt(data.loaded / data.total * 100, 10);
$('#progress_total .progress_bar').css('width', progress + '%');
},
maxRetries: 100,
retryTimeout: 500,
fail: function (e, data) {
console.log('NETWORK FAILURE');
// jQuery Widget Factory uses "namespace-widgetname" since version 1.10.0:
var fu = $(this).data('blueimp-fileupload') || $(this).data('fileupload'),
retries = data.context.data('retries') || 0,
retry = function () {
$.getJSON('server/php/', {file: data.files[0].name})
.done(function (result) {
var file = result.file;
data.uploadedBytes = file && file.size;
// clear the previous data:
data.data = null;
data.submit();
})
.fail(function () {
fu._trigger('fail', e, data);
});
};
if (data.errorThrown !== 'abort' &&
data.uploadedBytes < data.files[0].size &&
retries < fu.options.maxRetries) {
retries += 1;
data.context.data('retries', retries);
window.setTimeout(retry, retries * fu.options.retryTimeout);
return;
}
data.context.removeData('retries');
$.blueimp.fileupload.prototype
.options.fail.call(this, e, data);
}
});