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<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不兼容的问题[提示下载保存]的更多相关文章
- 【收集】JAVA多文件 上传文件接口代码 -兼容app
原文:http://www.verydemo.com/demo_c143_i23854.html 我们在 multifile 中可以很容易的发现如何使用,这里就简单说说了,首先在页面上我们需要有这样几 ...
- Extjs 使用fileupload插件上传文件 带进度条显示
一.首先我们看看官方给出的插件的解释: 一个文件上传表单项具有自定义的样式,并且可以控制按钮的文本和 像文本表单的空文本类似的其他特性. 它使用一个隐藏的文件输入元素,并在用户选择文件后 在form提 ...
- springmvc上传文件,抄别人的
SpringMVC中的文件上传 分类: SpringMVC 2012-05-17 12:55 26426人阅读 评论(13) 收藏 举报 stringuserinputclassencoding 这是 ...
- 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 ...
- Flex和Servlet结合上传文件
Flex和Servlet结合上传文件 1.准备工作 (1)下载文件上传的组件,commons-fileupload-1.3.1.jar (2)下载文件输入输出jar,commons-io-2.4.ja ...
- 使用XWAF框架(2)——上传文件
XWAF提供了上传文件的HttpFileUploader工具类,具备强大的多文件上传.文件类型过滤.文件大小限制.存储目录设置.文件名称更改等功能,简化了Web应用开发的编程工作. 它能同时解析表单参 ...
- Windows上传文件到linux 使用winscp
Windows上传文件到linux 使用winscp, winscp下载目录 https://sourceforge.net/projects/winscp/postdownload?source=d ...
- hadoop上传文件报错
19/06/06 16:09:26 INFO hdfs.DFSClient: Exception in createBlockOutputStream java.io.IOException: Bad ...
- Selenium+java - 借助autolt完成上传文件操作
写在前面: 上传文件是每个自动化测试同学会遇到,而且可以说是面试必考的问题,标准控件我们一般用sendkeys()就能完成上传,但是我们的测试网站的上传控件一般为自己封装的,用传统的上传已经不好用了, ...
随机推荐
- Java中的50个关键字
form:http://blog.csdn.net/luoweifu/article/details/6776240 Java中的50个关键字 关键字也称为保留字,是指java语言中规定了特定含义的标 ...
- Android特效专辑(七)——飞机升空特效,一键清理缓存,灵活运用动画会有不一样的感受
Android特效专辑(七)--飞机升空特效,一键清理缓存,灵活运用属性动画 最近的几篇博文反响还不错,也会继续的写下去的,关于这些特效的专辑,大多数也是借鉴大神的,最近由于工作的关系,会深入的了解一 ...
- PHP-MVC和Smarty初探笔记
在慕课网上学习了PHP的MVC的基础知识,记录一下笔记: 等待更新~
- warning: implicit declaration of function 'getMyfilename' [-Wimplicit-function-declaration]|
我在main后面定义了getMyfilename()函数,然后就报出这个warning. 在main前声明一下就好了.
- 初识MySQL数据库的各种CMD命令窗口下的指令
今天我们就来看一下数据库的各种命令,以下命令全部是从CMD命令窗口下的命令行输入指令,首先如果如果输入mysql,系统提示"mysql不是内部命令或外部命令.那么这其实是环境变量没有设置好的 ...
- Kubernetes如何支持有状态服务的部署?
作者:Jack47 转载请保留作者和原文出处 PS:如果喜欢我写的文章,欢迎关注我的微信公众账号程序员杰克,两边的文章会同步,也可以添加我的RSS订阅源. Kubernetes对无状态服务有完善的支持 ...
- 双机热备ROSE HA工作原理
双机热备ROSE HA工作原理 当双机热备软件启动后,ROSE HA首先启动HA Manager管理程序,根据高可靠性系统的配置结构初始化,然后启动必要的服务和代理程序来监控和管理系统服务.HA代理程 ...
- Day7 类的继承和继承实现的原理
继承可以分为但继承,多继承. 继承的基本形式 class ParentClass1(object): #定义父类 pass class ParentClass2: #定义父类 pass class S ...
- 关于图数据库查询语言:Cypher
Neo4j Cypher Refcard:http://neo4j.com/docs/cypher-refcard/current/Neo4j发布开源图查询语言openCypher:http://ww ...
- MapReduce的架构及原理
MapReduce是一种分布式计算模型,是Hadoop的主要组成之一,承担大批量数据的计算功能.MapReduce分为两个阶段:Map和Reduce. 一.MapReduce的架构演变 客户端向Job ...