extjs fileUpload文件上传时ie报错missing } in XML expression与火狐<pre>问题

最近在用ext3做一些小东西,用了它是上传控件,遇到了一些问题。记录一下。

对于文件上传来说,需要注意以下几个方面:

  1. 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";

就不会再报错了 记录下来

上面是网上的一办法,不过我在设置 Response.ContentType = "text/html"时,页面会弹出下载文件提示,不知道为什么,最后重写了ext的submit方法

如下:

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;
									    }
									});
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值