我最不喜欢的浏览器的是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<String> importForecast(@RequestParam MultipartFile file,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
Map<String,String> 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<String>(json, responseHeaders, HttpStatus.OK); }

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

Extjs 上传文件 IE不兼容的问题[提示下载保存]的更多相关文章

  1. 【收集】JAVA多文件 上传文件接口代码 -兼容app

    原文:http://www.verydemo.com/demo_c143_i23854.html 我们在 multifile 中可以很容易的发现如何使用,这里就简单说说了,首先在页面上我们需要有这样几 ...

  2. Extjs 使用fileupload插件上传文件 带进度条显示

    一.首先我们看看官方给出的插件的解释: 一个文件上传表单项具有自定义的样式,并且可以控制按钮的文本和 像文本表单的空文本类似的其他特性. 它使用一个隐藏的文件输入元素,并在用户选择文件后 在form提 ...

  3. springmvc上传文件,抄别人的

    SpringMVC中的文件上传 分类: SpringMVC 2012-05-17 12:55 26426人阅读 评论(13) 收藏 举报 stringuserinputclassencoding 这是 ...

  4. Requests库上传文件时UnicodeDecodeError: 'ascii' codec can't decode byte错误解析

    在使用Request上传文件的时候碰到如下错误提示: 2013-12-20 20:51:09,235 __main__ ERROR 'ascii' codec can't decode byte 0x ...

  5. Flex和Servlet结合上传文件

    Flex和Servlet结合上传文件 1.准备工作 (1)下载文件上传的组件,commons-fileupload-1.3.1.jar (2)下载文件输入输出jar,commons-io-2.4.ja ...

  6. 使用XWAF框架(2)——上传文件

    XWAF提供了上传文件的HttpFileUploader工具类,具备强大的多文件上传.文件类型过滤.文件大小限制.存储目录设置.文件名称更改等功能,简化了Web应用开发的编程工作. 它能同时解析表单参 ...

  7. Windows上传文件到linux 使用winscp

    Windows上传文件到linux 使用winscp, winscp下载目录 https://sourceforge.net/projects/winscp/postdownload?source=d ...

  8. hadoop上传文件报错

    19/06/06 16:09:26 INFO hdfs.DFSClient: Exception in createBlockOutputStream java.io.IOException: Bad ...

  9. Selenium+java - 借助autolt完成上传文件操作

    写在前面: 上传文件是每个自动化测试同学会遇到,而且可以说是面试必考的问题,标准控件我们一般用sendkeys()就能完成上传,但是我们的测试网站的上传控件一般为自己封装的,用传统的上传已经不好用了, ...

随机推荐

  1. How tomcat works 读书笔记十七 启动tomcat 下

    在上一节中,我们程序的起始位置还是Bootstrap,现在我们通过bat文件来启动这个类. 在分析catalina.bat之前,我们先看看几个简单的我们能用到的dos命令. 基础知识 1 rem 注释 ...

  2. python3+django2 开发易语言网络验证(中)

    第四步:网络验证的逻辑开发 1.将model注册到adminx.py中 1.在apps/yanzheng目录下新建admin.py 文件,添加代码: import xadmin from xadmin ...

  3. html5中新增的元素和废除的元素

    一.新增的结构元素 1.section元素表示页面中的一个内容区块,比如章节.页眉.页脚或页面中的其他部分.它可以与h1.h2.h3.h4.h5.h6等元素结合起来使用,标示文档结构. h5中的代码事 ...

  4. 每天几分钟跟小猫学前端之node系列:用node实现最简单的爬虫

    先来段求分小视频: https://www.iesdouyin.com/share/video/6550631947750608142/?region=CN&mid=6550632036246 ...

  5. 学习MQ(三) 一个实例

    学习MQ(三) 一个实例. 现在有两台机器A和B,分别安装了MQ6.0,我要通过MQ进行A和B之间的双向通信. 我打算分两步,第一步:实现A到B的数据传输. 在A上: 1.创建队列管理器 QM_100 ...

  6. CSDN的博客搜索功能不又给力了呵呵呵呵

    不得不说,CSDN博客的搜索功能是在太弱了.而且一直都很弱,以至于我每次想在自己博客上找自己发的文章都变得那么难.做一个搜索博客内文章的功能没有那么难吧? 还是说CSDN已经放弃了博客这一块了? 我发 ...

  7. XML学习教程

    XML学习进阶1-- 什么是XML. 为什么使用 XML?... 什么是 XML?... 数据的结构表示... XML 文档... 数据是从表示和处理中分离出来的... 使XML数据自描述... XM ...

  8. Java面试与回答技巧(1.如何正确的面试)

    在IT行业中,大部分公司很难用有效的方式招到合适的人.直接暴露出来的问题是:・花重金招了一个人,但实际的战斗力还比不上应届毕业生.・招聘了一个知名企业的高管,引入了一些高大上的技术,结果本来稳定的生产 ...

  9. Yii2表单提交(带文件上传)

    今天写一个php的表单提交接口,除了基本的字符串数据,还带文件上传,不用说前端form标签内应该有这些属性 <form enctype="multipart/form-data&quo ...

  10. 你需要知道的Android拍照适配方案

    拍照功能实现 Android 程序上实现拍照功能的方式分为两种:第一种是利用相机的 API 来自定义相机,第二种是利用 Intent 调用系统指定的相机拍照.下面讲的内容都是针对第二种实现方式的适配. ...