Javascript Uploader从不接收onComplete事件,并且行为异常
我使用的是Dojo1.7.2,我试图让文件上传程序与PHP中的REST服务一起工作。 以下是我的功能:Javascript Uploader从不接收onComplete事件,并且行为异常,javascript,dojo,Javascript,Dojo,我使用的是Dojo1.7.2,我试图让文件上传程序与PHP中的REST服务一起工作。 以下是我的功能: dojo.connect(dijit.byId("CNCFileUploader"), "onComplete", function(dataArray){ alert("onComplete Fired!"); dojo.forEach(dojo.isArray(dataArray) ? dataArray : [dataArray], function(resp){ console
dojo.connect(dijit.byId("CNCFileUploader"), "onComplete", function(dataArray){
alert("onComplete Fired!");
dojo.forEach(dojo.isArray(dataArray) ? dataArray : [dataArray], function(resp){
console.log("display:", resp.file, resp.duplicates);
});
});
这是我的标记:
<div data-dojo-type="dijit.Dialog" id="addCncIdsFileDialg" >
<form method="post" data-dojo-type="dijit.form.Form" id="addCncIdsFileFrm" enctype="multipart/form-data" action="CartService.php/cart/156568/cncidfiles">
<fieldset>
<legend>Upload File(s) with CNC_IDs</legend>
<div align="center">
<input type="file" multiple="true" name="CNCFileUploader" id="CNCFileUploader" data-dojo-type="dojox.form.Uploader" uploadOnSelect="false" /> <br/>
<button data-dojo-type="dijit.form.Button" type="submit" data-dojo-props="onClick:function(){dijit.byId('addCncIdsFileDialg').hide();}" id="cncIdsFSubmitBttn">OK</button>
<button data-dojo-type="dijit.form.Button" type="button" data-dojo-props="onClick:function(){dijit.byId('addCncIdsFileDialg').hide();}" id="cncIdsFCancelBttn" >Cancel</button>
</div>
<div id="CNC_IDfiles" dojoType="dojox.form.uploader.FileList" uploaderId="CNCFileUploader"></div>
</fieldset>
第二个问题是,当我使用Google Chrome时,每次都会发送文件,但我在服务器上看到的内容与dojo在Uploadfile.php中记录的内容非常不同
我相信dojox.form.Uploader在1.7.2中在几个重要方面被严重破坏了
出于沮丧,我尝试使用dojo.io.iframe.send,但尽管Chrome运行良好,IE9仍表现得像是想下载CNCID文件,而且只在第一次运行 啊。。。糟糕的上传程序小部件…:) 好吧,看看这里有没有评论(在html5上传者的帖子上) 你的问题没有说明你是如何做到这一点的,但是你需要扩展你的上传程序,或者扩展插件,
IFrame
/HTML5
或者Flash
,或者onComplete不是API挂钩。。换句话说,它没有在dojox/form/Uploader中定义。您应该使用嗅探方法,确定它是IE还是“其他”。对于IE,使用Flash
和任何其他工具扩展它,使用HTML5(将IFrame作为后备)
例如。;
啊哈。。。糟糕的上传程序小部件…:) 好吧,看看这里有没有评论(在html5上传者的帖子上) 你的问题没有说明你是如何做到这一点的,但是你需要扩展你的上传程序,或者扩展插件,
IFrame
/HTML5
或者Flash
,或者onComplete不是API挂钩。。换句话说,它没有在dojox/form/Uploader中定义。您应该使用嗅探方法,确定它是IE还是“其他”。对于IE,使用Flash
和任何其他工具扩展它,使用HTML5(将IFrame作为后备)
例如。;
TypeError: Unable to get value of the property 'value': object is null or undefined
TypeError: Unable to get value of the property 'value': object is null or undefined
// this must be BeFore dojo.ready (and before parser runs)!
if(dojo.isIE) dojo.require("dojox.form.uploader.Flash");
else dojo.require("dojox.form.uploader.HTML5");