最近在用ext3做一些小东西,用了它是上传控件,遇到了一些问题。记录一下。
对于文件上传来说,需要注意以下几个方面:
- 在FormPanel中设置一个属性【fileUpload : 'true'】;
<!--[if !supportLists]-->2.??? <!--[endif]-->在jsp页面中引入FileUploadField.js文件,这个文件的路径是【"${pageContext.request.contextPath}/ux/fileuploadfield/FileUploadField.js"】;
UI组件 |
相应的ExtJS属性(主要部分) |
后台Java Bean属性 |
xtype : 'fileuploadfield' |
需要定义name属性,name : 'xyz' |
Struts1/2是不同的,这里以struts2为例。根据情况,需要定义三个属性中的某个或某几个。它们分别是: File xyz; ---?真正的文件; String xyzFileName; ---?文件名字; String xyzContentType; ---?文件类型; 多文件上传时,需要将属性定义为List类型; |
这里需要注意的是:文件上传一样受struts的文件上传大小的限制。
?
在调用此方法时会发现json返回值被加上(<pre>{success:true, msg:'成功'}</pre>) ext-all.js里报错。 IE,fox里都报错, 在网上找了下,有人在改ext-all.js 再上网找了下发现在处理文件里设置Response.ContentType = "text/html"; 就不会再报错了 记录下来
如下:
Ext.override(Ext.form.Action.Submit,{ processResponse : function(response){ this.response = response; var data = response.responseText; if(data.indexOf('<pre') != -1) { response.responseText = data.substring(data.indexOf("{"), data.indexOf("}")+1); this.response = Ext.util.JSON.decode(response.responseText); } if(!response.responseText){ return true; } return this.result; } });?
你看一下返回的json串,看格式是否正确,上面的方法只是把返回的串截取了一下
你看一下返回的json串,看格式是否正确,上面的方法只是把返回的串截取了一下
哦,是这样啊,我知道了,那在ext-all.js里怎么改啊,我新手,我还是不明白
你看一下返回的json串,看格式是否正确,上面的方法只是把返回的串截取了一下
哦,是这样啊,我知道了,那在ext-all.js里怎么改啊,我新手,我还是不明白
具体怎么改我记不清了,你在网上找找,应该有,你在js里打个断点,跟进去看看你返回值