123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- define("dojox/form/uploader/plugins/IFrame", [
- "dojo/dom-construct",
- "dojo/_base/declare",
- "dojo/_base/lang",
- "dojo/_base/array",
- "dojo/io/iframe",
- "dojox/form/uploader/plugins/HTML5"
- ],function(domConstruct, declare, lang, array, ioIframe, formUploaderPluginsHTML5){
-
- var pluginsIFrame = declare("dojox.form.uploader.plugins.IFrame", [], {
- //
- // Version: 1.6
- //
- // summary:
- // A plugin for dojox.form.Uploader that adds Ajax upload capabilities.
- //
- // description:
- // Only supported by IE, due to the specifc iFrame hack used. The
- // formUploaderPluginsHTML5 plugin should be used along with this to add HTML5
- // capabilities to browsers that support them. Progress events are not supported.
- // Inherits all properties from dojox.form.Uploader and formUploaderPluginsHTML5.
- //
- force:"",
- postMixInProperties: function(){
- this.inherited(arguments);
- if(!this.supports("multiple") || this.force =="iframe"){
- this.uploadType = "iframe";
- this.upload = this.uploadIFrame;
- }
- },
- uploadIFrame: function(data){
- // summary:
- // Internal. You could use this, but you should use upload() or submit();
- // which can also handle the post data.
- //
- var form, destroyAfter = false;
- if(!this.getForm()){
- //enctype can't be changed once a form element is created
- form = domConstruct.place('<form enctype="multipart/form-data" method="post"></form>', this.domNode);
- array.forEach(this._inputs, function(n, i){
- if(n.value) form.appendChild(n);
- }, this);
- destroyAfter = true;
- }else{
- form = this.form;
- }
- var url = this.getUrl();
- var dfd = ioIframe.send({
- url: url,
- form: form,
- handleAs: "json",
- content: data,
- error: lang.hitch(this, function(err){
- if(destroyAfter){ domConstruct.destroy(form); }
- this.onError(err);
- }),
- load: lang.hitch(this, function(data, ioArgs, widgetRef){
- if(destroyAfter){ domConstruct.destroy(form); }
- if(data["ERROR"] || data["error"]){
- this.onError(data);
- }else{
- this.onComplete(data);
- }
- })
- });
- }
- });
- dojox.form.addUploaderPlugin(pluginsIFrame);
- return pluginsIFrame;
- });
|