Extjs 上传文件 IE不兼容的问题提示下载保存

我最不喜欢的浏览器的是IE,但无奈很多项目的客户使用的是IE.

在使用Extjs做文件上传时,其他浏览器没有问题,但IE却一个劲提示保存文件,看服务端运行,它其实是运行成功了已经,但客户端的进度条却一个劲的在加载。

原因是:

IE浏览器对Content-Type = application/json,会出现下载保存

IE浏览器对Content-Type = text/html,返回信息按html处理

所以我们需要在代码中改变response的返回值来使IE上可以正常的运行:

JS代码:

 

 var importform = new Ext.form.FormPanel({
				labelAlign : 'right',
				fileUpload:true, 
				items : [ {
					xtype : 'filefield',
					id:'upFile',
					name : 'file',
					fieldLabel : '导入',
					labelStyle : text-align:right;,
					labelWidth : 50,
					msgTarget : 'side',
					allowBlank : false,
					anchor : '100%',
					buttonText : '选择文件'
				} ],
				buttonAlign : 'center',
				buttons : [ {
					text : '上传',
					handler : function() {
						if (importform.form.isValid()) {
							importform.getForm().submit({
								url : 'forecast/importForecast',
								waitMsg : '正在提交数据',
								waitTitle : '提示',
								success : function(response, options) {
									var message = options.result.message;
									if(message == ok){
										Ext.Msg.alert('提示', 上传成功);										
									}else if(message == ver){
										Ext.Msg.alert('提示', 请检查版本号是否正确);										
									}else if(message == type){
										Ext.Msg.alert('提示', 你上传的文件类型错误);										
									}
									importWin.hide();
									deliveryStore.reload();
								},
								failure : function(response, options) {
									Ext.Msg.alert('失败', '导入文件失败');
								}
							});
							
						}
					}
				}, {
					text : '重置',
					handler : function() {
						importform.getForm().reset();
					}
				}, {
					text : '取消',
					handler : function() {
						importform.getForm().reset();
						importWin.hide();
					}
				} ]

			});

controller代码:

 

 

/**
	 * 上传 即导入数据
	 * @param file
	 * @param request
	 * @param response
	 * @return
	 * @throws Exception
	 */
	@RequestMapping(value = /importForecast)
	public ResponseEntity importForecast(@RequestParam MultipartFile file,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		Map map = new HashMap();
		map.put(roleId, request.getSession().getAttribute(roleId).toString());
		String result = ;
		HttpHeaders responseHeaders = new HttpHeaders();
        responseHeaders.setContentType(MediaType.TEXT_HTML);
        try {
			String fileName = file.getOriginalFilename();
			long size = file.getSize();

			if (!(fileName == null  fileName.equals()) && size > 0) {
				DmtTsUser user = (DmtTsUser) request.getSession().getAttribute(
						user);
				 result = forecastService.importForecast(file,
						fileName, map);
				
			}
        } catch (Exception e) {
            e.printStackTrace();
        }
        String json = {success:true,message:+result+};
        return new ResponseEntity(json, responseHeaders, HttpStatus.OK);
		
	}

try的部分是具体的实现文件上传的代码

 

更多相关文章
  • [标题]VB_老板键2005注册算法分析 [作者]forever[RCT] [工具]ollydbg 1.1, peid 0.93 [保护]注册码 [难度]简单 [连接]http://www2.skycn.com/soft/24666.html [简介]所谓"老板键",并非是给老板 ...
  • Snapchat公司CEO伊万·斯皮格尔24岁时,我半开玩笑地告诉老板我想当CEO,他几乎从椅子上掉下来.那是1974年,我还在IBM当软件开发员.那时,没有人觉得一个小工程师应该奢望坐上专为金牌销售预留的位置.但在老板的指点下,我认真做了一番自我审视,把当上CEO真正作为了目标.最终,30年后,我 ...
  • #include #include #define MaxSize 100 /*线索二叉树类型定义*/ typedef char DataType; typedef enum {Link,Thread}PointerTag;//Link=0表示指向孩子节点,Thread=1表示指向前驱节点或后继节点 ...
  •   首先恭喜大家挺过了测试二!为什么说“挺”呢?因为测试二的难度和测试一相比有一个比较大的跳跃:首先测试一仅仅利用现有硬件模块稍加改造而DIY一个蓝牙防丢器,而测试二则要求大家具有从脑袋里的一个想法到一个全新的小设备的实现的全部能力,显然该过程不是连几根线那么简单:其次测试一对蓝牙的使用仅限于信号搜 ...
  • 不管你有多好的商业点子也只能算是纸上谈兵,你需要的是将这些好的想法变为现实的资金,因此成功获得风投公司的亲睐对企业的发展至关重要.那么,究竟要怎样才能让自己的企业被风投公司选中呢?下面就是消费者信用与理财服务网站Gredit Karma 创始人Kenneth Lin为你支的招,Gredit Karm ...
  • 第2章.观察者模式 1.定义: 在对象之间定义一对多关系,当一个对象改变状态时,该对象的依赖会收到通知,并自动更新. 2.介绍 在介绍观察者模式之前,先来说一个日常生活中经常碰到的事(可能现在的人碰到的少了,但是老一辈人喷到的要多的多),那就是关于报纸的订阅.在报纸订阅这整个事件中牵扯到了报社.订阅 ...
一周排行
  • NAME mailaddr - 关于邮件地址的描述 DESCRIPTION 描述 本手册给出的是 Internet 使用的 SMTP 邮件地址的简要描述.这些地址的通常的格式是 [email protected] 这里的域 (d ...
  • 一个国家的黑客技术发展是有利于国家安全的 国内的一个网络安全小组cnns的前身,在去年对日本.台湾地区和美国的网络安全状况进行了远程分析和调查,并与中国的网络安全状况做了对比,调查显示: 日本和台湾的网络安全水平和中 ...
  • 本报讯 (记者刘兰兰)中兴通讯28日发布了2011年报,中兴通讯2011年实现营业收入862.54亿元人民币,同比增长23.39%.与营收增长相反,其净利润下滑.去年中兴通讯归属于母公司股东的净利润为20.60亿元人 ...
  • 据Gigaom消息,三星正以 2 亿美金的报价洽购智能家居平台提供商 SmartThings. SmartThing 除提供可通过手机应用遥控的家庭自动化平台外,还在其电商销售有智能家电套件.设备和整体解决方案.A轮 ...
  • 接口,interface,这个词语有误导之嫌.窃以为,这也是其名称与实际开发不符,造成难于直观理解和使用过程中产生困惑的根源.所谓名不正则言不顺:不怕生错命,最怕改坏名.在现实生活中,接口通常是指将两样东西接合在一起 ...
  •                本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新  开源Math.NET基础数学类库使用总目录:[目录]开源Math.NET基础数学类库使用总目录 上个月对Math.NE ...
  • CSS3时钟式进度条,加载完成时生成一个圆,数字慢慢变成100,适时的显示加载进度.友情提醒,如果预览时网页提示错误,刷新一下就可以看到效果了:实际使用中不会出现这样的问题. <!DOCTYPE html PU ...
  •   网上有很多资料介绍如何集成CAS单点登录产品.由于集成CAS需要预先在tomcat中配置SSL,而且还要在客户端导入证书,但是许多人按照网上介绍的操作操作却发现以下问题:尽管配置了SSL后可以访问https:// ...
  • 前段时间用我修改了tinyhttpd,让其cgi支持文件流,感觉满小巧,就应用上了.最近访问请求量上来而来,它对socket的各种异常状态处理不好,对于慢速的链接会占用我的线程.虽然我一直想仿出tencentwebp ...