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.介绍 在介绍观察者模式之前,先来说一个日常生活中经常碰到的事(可能现在的人碰到的少了,但是老一辈人喷到的要多的多),那就是关于报纸的订阅.在报纸订阅这整个事件中牵扯到了报社.订阅 ...
一周排行
  • 易网科技讯 4月21日消息,中国移动2010年可持续发展报告今天发布,这是中国移动连续第五年推出企业社会责任报告,同时也是通信行业首份可持续发展报告.与以往不同,该报告不再以企业社会责任为名,而称为"可持续 ...
  • 中国移动"对抗"中国联通引入iPhone的炮弹即将打出.记者昨日获悉,中国仿效苹果公司的App Store设立中国移动应用程序商店准备就绪,即将于8月中旬正式上线,另外,基于中移动自主研发平台的四 ...
  • Problem Description 小兔的叔叔从外面旅游回来给她带来了一个礼物,小兔高兴地跑回自己的房间,拆开一看是一个棋盘,小兔有所失望.不过没过几天发现了棋盘的好玩之处.从起点(0,0)走到终点(n,n)的最 ...
  •   对ViewGoup的实现的类有很多,它们有着各自的布局特点,比如LinearLayout类是把它包括的元素按照水平和竖直的方向排列.
  •     如果想要很好的使用一件兵器,你必须了解它的秉性.它的优势劣势,掌握它的精神,从而扬长避短.使用XCodeFactory也是一样,要想它成为你的得力助手,你需要花一点时间来了解它.我可以向你保证,它一定不会让你 ...
  •  本篇文章来源于 中国协议分析网|www.cnpaf.net 原文链接:http://www.cnpaf.net/Class/otherprotocol/200610/14547.html   TD-SCDMA系统具 ...
  •   1 VSS概述 版本控制是工作组软件开发中的重要方面,它能防止意外的文件丢失.允许反追踪到早期版本.并能对版本进行分支.合并和管理.在软件开发和您需要比较两种版本的文件或找回早期版本的文件时,源代码的控制是非常有 ...
  • http://books.google.com.hk/books?id=TVXBAQAAQBAJ&lpg=PA179&vq=unref&hl=zh-CN&pg=PA179#v=snip ...
  • 银泰董事长沈国军日前表示,银泰商业将与阿里巴巴合资成立一家平台公司,阿里拟对其投资约10亿元,银泰商业则会将银泰网资源注入该平台公司. 这是继今年3月阿里宣布以53.7亿元港币投资银泰商业集团之后,双方的进一步整合. ...
  • 实践操作:3 company_VM机 sftp 是一个交互式文件传输程式.它类似于 ftp, 但它进行加密传输,比FTP有更高的安全性.下边就简单介绍一下如何远程连接主机,进行文件的上传和下载,以及 ...