HTML5.js 2.1 KB

12
  1. //>>built
  2. define("pd/widgets/uploader/HTML5",["dojo/_base/declare","dojo/_base/lang","dojo/_base/array","dojox/form/uploader/plugins/HTML5"],function(_1,_2,_3,_4){var _5=_1("pd/widgets/uploader/HTML5",[_4],{upload:function(_6){var _7=_6["inSpec"]!=null;this.onBegin(this.getFileList());this.uploadWithFormData(_6,!_7);},uploadWithFormData:function(_8,_9){var _a=new FormData();if(_8){for(var _b in _8){_a.append(_b,_8[_b]);}_8.uploadType=this.uploadType;}if(_9){this._filesTMP=this._files;}else{if(this._filesTMP){this._files=this._filesTMP;}}_3.some(this._files,function(_c){_a.append(this.name,_9?"":_c);return true;},this);var _d=this.createXhr(_8,_9);if(dojo.isSafari&&_d.overrideMimeType){_d.overrideMimeType("text/xml");}_d.send(_a);},createXhr:function(_e,_f){var xhr=new XMLHttpRequest();var _10;if(!_f){xhr.upload.addEventListener("progress",_2.hitch(this,"_xhrProgress"),false);}xhr.addEventListener("load",_2.hitch(this,"_xhrProgress"),false);xhr.addEventListener("error",_2.hitch(this,function(evt){this.onError(evt);clearInterval(_10);}),false);xhr.addEventListener("abort",_2.hitch(this,function(evt){this.onAbort(evt);clearInterval(_10);}),false);xhr.onreadystatechange=_2.hitch(this,function(){if(xhr.readyState===4){clearInterval(_10);try{var _11="";if(this.handleAs.toLowerCase()=="json"){_11=JSON.parse(xhr.responseText.replace(/^\{\}&&/,""));}else{if(this.handleAs.toLowerCase()=="xml"){_11=xhr.responseXML;}else{if(this.handleAs.toLowerCase()=="html"){_11=xhr.response;}else{_11=xhr.responseText;}}}if(xhr.status==200){if(_f){var _12=this.onComplete(_11,true);if(_12){this.uploadWithFormData(_e,false);}}else{this.onComplete(_11);}}else{this.onError({name:xhr.status,message:xhr.status+" "+xhr.statusText,response:_11});}}catch(err){this.onError(err);}}else{}});xhr.open("POST",this.getUrl());xhr.setRequestHeader("Accept","application/"+this.handleAs);var _13="";if(this.handleAs.toLowerCase()=="json"){_13="json";}else{if(this.handleAs.toLowerCase()=="html"){_13=dojo.isSafari?"text":"document";}}xhr.responseType=_13;_10=setInterval(_2.hitch(this,function(){try{if(typeof (xhr.statusText)){}}catch(e){clearInterval(_10);}}),250);return xhr;}});return _5;});