Demo como subir Archivos usando Widgets de Dojo Toolkit(dijit.ProgressBar, dojo.io.iframe,dijit.form.Button,dojo.xhrGet, etc.), El monitoreo de progreso de la subida del archivo usando org.apache.commons.fileupload.ProgressListener.
Parte del Codigo Dojo y JSP:
@import "js/dojotoolkit/dijit/themes/tundra/tundra.css";
@import "js/dojotoolkit/dijit/themes/nihilo/soria.css";
@import "js/dojotoolkit/dijit/themes/dijit.css";
@import "js/dojotoolkit/dijit/themes/nihilo/nihilo.css";
@import "js/dojotoolkit/dojo/resources/dojo.css"
dojo.require("dijit.ProgressBar");
dojo.require("dijit.form.ComboBox");
dojo.require("dijit.form.DateTextBox");
dojo.require("dojo.parser");
dojo.require("dijit.form.FilteringSelect");
dojo.require("dijit.form.Button");
dojo.require("dijit.form.ComboBox");
dojo.require("dijit.layout.SplitContainer");
dojo.require("dijit.layout.ContentPane");
dojo.require("dijit.form.ComboBox");
dojo.require("dojo.data.ItemFileReadStore");
dojo.require("dijit.form.TextBox");
dojo.require("dojo.io.iframe");
dojo.require("dijit.Tooltip");
dojo.require("dijit.layout.TabContainer");
dojo.require("dijit.layout.ContentPane");
dojo.addOnLoad(function(){
dijit.byId('downloadProgress').domNode.style.display = "none";
var StoreMes = new dojo.data.ItemFileReadStore({url: "http://localhost:9080/SidAjax/util/mes.json"});
var selectMes = new dijit.form.ComboBox({id: "mes", name: "mes", value: "Enero", store: StoreMes, searchAttr: "name"}, "mes");
var StoreAnios = new dojo.data.ItemFileReadStore({url: "http://localhost:9080/SidAjax/util/anios.json"});
var selectAnios = new dijit.form.ComboBox({id: "anios", name: "anio", value: "2009", store: StoreAnios, searchAttr: "name"}, "anios");
var StorePais = new dojo.data.ItemFileReadStore({url: "http://localhost:9080/SidAjax/util/paises.json"});
var selectPais = new dijit.form.ComboBox({id: "pais", name: "pais", value: "Peru", store: StorePais, searchAttr: "name"}, "pais");
var StoreCats = new dojo.data.ItemFileReadStore({url: "http://localhost:9080/SidAjax/util/cats.json"});
var selectCats = new dijit.form.ComboBox({id: "cats", name: "cats", value: "Desplazamiento", store: StoreCats, searchAttr: "name"}, "cats");
});
var load=0;
var upload=false;
function doProgress() {
dijit.byId('downloadProgress').domNode.style.display = "block";
//dijit.byId('submitButton').domNode.style.display = "none";
jsProgress.update({ maximum: 100, progress: 0 });
doProgressLoop();
}
function doProgressLoop() {
if (load < class="Apple-tab-span" style="white-space:pre">
getProgress();
setTimeout("jsProgress.update({ progress: " + load + " })", (load+1)*50 + Math.floor(Math.random()*100));
setTimeout("doProgressLoop()", 700);
if(upload){
killProgress();
load=100;
dijit.byId("submitButton").enabled='true';
}
}else{
jsProgress.update({ progress: 100 });
dijit.byId('downloadProgress').domNode.style.display = "none";
dijit.byId("submitButton").disabled='false';
//dijit.byId('submitButton').domNode.style.display = "block";
}
}
function getProgress() {
if(load<100){
dojo.xhrGet({url: 'progress', handleAs: "text",
load: function (data) {
if(data==100){
load=100;
}else if(data<100){
load=data;
}
//dojo.byId('response').innerHTML = load;
},
error: function (data) {
//dojo.byId('response').innerHTML = "Error retrieving progress"+data;
}
});
}
}
function killProgress() {
if(load<100){
dojo.xhrGet({url: 'killprogress', handleAs: "text",
load: function (data) {
//dojo.byId('response').innerHTML = "killed progres";
},
error: function (data) {
//dojo.byId('response').innerHTML = "Error retrieving progress"+data;
}
});
}
}
function sendForm(){
var button = dijit.byId("submitButton");
dojo.connect(button, "onClick", function(event){
button.disabled='true';
event.preventDefault();
event.stopPropagation();
var xhrArgs = {
form: dojo.byId("myform"),
handleAs: "html",
method: 'POST',
contentType: "multipart/form-data",
load: function(data){
//dojo.byId("response").innerHTML = "Archivo Subido OK."+ data;
//dijit.byId("submitButton").disabled='false';
upload=true;
},
error: function(error){
//dojo.byId("response").innerHTML = "Error al subir archivo.";
}
}
var deferred = dojo.io.iframe.send(xhrArgs);
doProgress();
dojo.byId("response").innerHTML = "fue enviado..."
});
}
dojo.addOnLoad(sendForm);
Dojo File Upload Progress Bar
View more documents from David Motta baldarrago.
Comentarios
Publicar un comentario