问题:使用spring mvc ajaxfileupload 文件上传在ie8下会提示json下载问题

解决方案如下:

服务器代码:

    @RequestMapping(value = "/addAnalysis", method = RequestMethod.POST)
public void addAnalysisUI(
HttpServletResponse response,HttpServletRequest request,HttpSession session,
@RequestParam(required = false, value = "file") MultipartFile file,
@RequestParam(required = false, value = "analysisTitle") String analysisTitle,
@RequestParam(required = true, value = "selectWeekly") String selectWeekly,
@RequestParam(required = false, value = "contents") String contents,
@RequestParam(required = true, value = "analysisSource") String analysisSource){ response.setCharacterEncoding("UTF-8");
response.setContentType("text/html");
PrintWriter out = null;
ResponseMessage message = new ResponseMessage();
try {
//校验信息
if (StringUtils.isBlank(analysisTitle) && StringUtils.isBlank(selectWeekly) && StringUtils.isBlank(analysisSource) && file == null) {
message.setStatus(202);
} else {
String savePath = request.getServletContext().getRealPath("/WEB-INF/upload");
ManagerAccount user = (ManagerAccount) session
.getAttribute(Constants.CURRENT_USER);
File fileTemp = filePersistence(savePath, file);
Analysis analysis = new Analysis(analysisTitle, selectWeekly,
user.getName(), analysisSource, fileTemp.getName(),
new Date(), contents);
analysisService.insertDataAnalysis(analysis);// 往数据库中插入一条记录
message.setStatus(200);
}
out = response.getWriter();
out.append(JacksonUtils.obj2json(message));
} catch (Exception ex) {
logger.error(ex.getMessage());
} finally {
if (out != null) {
out.close();
}
}
}

在我的项目里面配置jackjson转换器,后台返回json就不能用@responseBody 配置的Jackson 适配转换器转化,只能自己手动构建json字符串,设置Content-Type为“text/html;chartset=UTF-8”,然后通过response输出,因为在ie不支持application/json格式,另外firefox, chrome浏览器iframe在接收application/json格式的时候会自动将其转化为html格式,自动在json数据前后加上<pre></pre>标签导致ajaxfileupload插件取json数据错误

前端js代码如下:

function submitForm() {
var oEditor = CKEDITOR.instances.contents;
$('#contents').val(oEditor.getData());
$('#form1').ajaxSubmit({
url : 'XX/XX',
dataType : 'text',
cache : false,// 是否缓存
type : 'POST',// 提交方式 可以选择post/get 推荐post
async : false,// 同步异步 false是同步
success : function(data) {
var dataStr = $.parseJSON(data);//将String字符串转换成json
alert(JSON.stringify(dataStr));
if (dataStr.status == 200) {
alert("新增成功!");
loadApplication('analysis/index');
} else {
alert("新增失败!");
loadApplication('analysis/index');
}
}
});
}

spring mvc ajaxfileupload文件上传返回json下载问题的更多相关文章

  1. Spring MVC的文件上传和下载

    简介: Spring MVC为文件上传提供了直接的支持,这种支持使用即插即用的MultipartResolver实现的.Spring MVC 使用Apache Commons FileUpload技术 ...

  2. 【Spring学习笔记-MVC-13】Spring MVC之文件上传

    作者:ssslinppp       1. 摘要 Spring MVC为文件上传提供了最直接的支持,这种支持是通过即插即用的MultipartResolve实现的.Spring使用Jakarta Co ...

  3. 0062 Spring MVC的文件上传与下载--MultipartFile--ResponseEntity

    文件上传功能在网页中见的太多了,比如上传照片作为头像.上传Excel文档导入数据等 先写个上传文件的html <!DOCTYPE html> <html> <head&g ...

  4. Spring MVC-学习笔记(5)spring MVC的文件上传、下载、拦截器

    1.文件上传.      spring MVC为文件上传提供了直接的支持,这种支持是即插即用的MultipartResolver(多部分解析器)实现的.spring MVC使用Apache Commo ...

  5. Spring MVC实现文件上传

    基础准备: Spring MVC为文件上传提供了直接支持,这种支持来自于MultipartResolver.Spring使用Jakarta Commons FileUpload技术实现了一个Multi ...

  6. Spring MVC的文件上传

    1.文件上传 文件上传是项目开发中常用的功能.为了能上传文件,必须将表单的method设置为POST,并将enctype设置为multipart/form-data.只有在这种情况下,浏览器才会把用户 ...

  7. Java Web 学习(8) —— Spring MVC 之文件上传与下载

    Spring MVC 之文件上传与下载 上传文件 表单: <form action="upload" enctype="multipart/form-data&qu ...

  8. MVC+AjaxFileUpload文件上传

    来源:微信公众号CodeL 本次给大家分享的是ajaxfileupload文件上传插件,百度一大堆功能超炫的文件上传插件,为什么我们会选择这个插件呢? 原因是在此之前,我们尝试使用过很多基于flash ...

  9. 使用Spring MVC实现文件上传与下载

    前段时间做毕业设计的时候,想要完成一个上传文件的功能,后来,虽然在自己本地搭建了一个ftp服务器,然后使用公司的工具完成了一个文档管理系统:但是还是没有找到自己想要的文件上传与下载的方式. 今天看到一 ...

随机推荐

  1. FMDB数据库使用

    创建数据库路径 NSString* docsdir = [NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainM ...

  2. Eclipse操作Servlet入门案例,创建类无法实现Servlet接口和继承HttpServlet类

    问题描述: 从昨天下午到今天中午,这个问题被缠绕了良久.百度了很多,却都没有一言命中要害. 首先,还是基于对Web的理解. 第一:建立的是Dynamic  Web   Project: 第二:然后需要 ...

  3. 【js】Redux基本原理和使用

    Redux不是说任何的应用都要用到它,如果遇到了react解决不了得问题,可以考虑使用它. 例如: 用户的使用方式复杂不同身份的用户有不同的使用方式(比如普通用户和管理员)多个用户之间可以协作与服务器 ...

  4. 请问在一个命令上加什么参数可以实现下面命令的内容在同一行输出。 echo "zhaokang";echo "zhaokang"

    请问在一个命令上加什么参数可以实现下面命令的内容在同一行输出. echo "zhaokang";echo "zhaokang" [root@zhaokang t ...

  5. ElasticSearch优化系列三:机器设置(内存)

    heap参数设置优化 命令行修改 ./bin/elasticsearch -Xmx10g -Xms10g xmx-JVM最大允许分配的堆内存,按需分配 xms-JVM初始分配的堆内存 此值设置与-Xm ...

  6. Debian使用dpkg安装MySQL

    说明 本文写于2017-10-03,使用MySQL 5.7,操作系统为64位 Debian GNU/Linux 8.6 (jessie). 安装 因apt仓库将mysql相关的包移除,需要自己去官网下 ...

  7. 07-容器类Widget

    容器类Widget 容器类Widget一般只是包装其子Widget,对其添加一些修饰(补白或背景色等).变换(旋转或剪裁等).或限制(大小等) Padding Padding可以给其子节点添加补白(填 ...

  8. tensorflow 模型权重导出

    tensorflow在保存权重模型时多使用tf.train.Saver().save 函数进行权重保存,保存的ckpt文件无法直接打开,不利于将模型权重导入到其他框架使用(如Caffe.Keras等) ...

  9. Linux入门第五天——shell脚本入门(下)基础语法之调试debug

    一.如何debug 1.通过sh命令的参数: sh [-nvx] scripts.sh 选项与参数: -n :不要执行 script,仅查询语法的问题: -v :再执行 sccript 前,先将 sc ...

  10. 20155329胡佩伦 《Java程序设计》第3周学习总结

    学号 2016-2017-20155329胡佩伦 <Java程序设计>第3周学习总结 教材学习内容总结 本周复习巩固了运算符. 前缀自增自减法(++i,--i): 先进行自增或者自减运算, ...