41 lines
1.1 KiB
JavaScript
41 lines
1.1 KiB
JavaScript
"use strict";
|
|
|
|
var dropzone = new Dropzone("#mydropzone", {
|
|
url: "#"
|
|
});
|
|
|
|
var minSteps = 6,
|
|
maxSteps = 60,
|
|
timeBetweenSteps = 100,
|
|
bytesPerStep = 100000;
|
|
|
|
dropzone.uploadFiles = function(files) {
|
|
var self = this;
|
|
|
|
for (var i = 0; i < files.length; i++) {
|
|
|
|
var file = files[i];
|
|
totalSteps = Math.round(Math.min(maxSteps, Math.max(minSteps, file.size / bytesPerStep)));
|
|
|
|
for (var step = 0; step < totalSteps; step++) {
|
|
var duration = timeBetweenSteps * (step + 1);
|
|
setTimeout(function(file, totalSteps, step) {
|
|
return function() {
|
|
file.upload = {
|
|
progress: 100 * (step + 1) / totalSteps,
|
|
total: file.size,
|
|
bytesSent: (step + 1) * file.size / totalSteps
|
|
};
|
|
|
|
self.emit('uploadprogress', file, file.upload.progress, file.upload.bytesSent);
|
|
if (file.upload.progress == 100) {
|
|
file.status = Dropzone.SUCCESS;
|
|
self.emit("success", file, 'success', null);
|
|
self.emit("complete", file);
|
|
self.processQueue();
|
|
}
|
|
};
|
|
}(file, totalSteps, step), duration);
|
|
}
|
|
}
|
|
} |