问题:使用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. JQuery弹出Dialog关闭方式close vs destroy

    $editDialog.iDialog('close')  $(this).dialog('close'); 等Close方法关闭Dialog时,Dialog并不是完全消失,只是隐藏起来.两个Dial ...

  2. Java代码生成器CodeX4J介绍

    用代码生成器生成一些固定的或有规律的代码,可以有效的提高工作效率.我写了个开源的,放在了GitHub上,希望能对有需要的朋友有所帮助. GitHub代码地址https://github.com/jac ...

  3. 点击label执行两次的bug

    首先我是这样的写的: <label> <input type="checkbox">点击 </label> 无论点击input还是文字,都会执行 ...

  4. 100-Days-Of-ML-Code 评注版(Day 3)

    Day3_Multiple_Linear_Regression(多元线性回归) 本文引用自 Multiple_Linear_Regression, 对其中内容进行了评注与补充说明. 回归分析是一种预测 ...

  5. 树莓派3B+学习笔记:11、查看硬件信息

    1.查看CPU信息 cat /proc/cpuinfo 查看最后三行 如果只想查看最后三行,也可使用这个命令 /proc/cpuinfo lscpu 2.查看树莓派型号 cat /proc/devic ...

  6. 从零开始搭建vue移动端项目到上线的步骤

    初始化项目 1.在安装了node.js的前提下,使用以下命令 npm install --g vue-cli 2.在将要构建项目的目录下 vue init webpack myproject(项目目录 ...

  7. 20155202 2016-2017-2 《Java程序设计》第10周学习总结

    20155202 2016-2017-2 <Java程序设计>第10周学习总结 教材学习内容总结 计算机网络基础 一.网络模型 模型分类: OSI,TCP/IP,五层协议的体系结构,以及各 ...

  8. 20155323 第三次实验 敏捷开发与XP实践

    20155323 第三次实验 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器 ...

  9. ruby学习笔记(2)-chomp,chop的区别

    还没开始系统性的学习Ruby,最近在看metasploit框架的exploit会涉及到Ruby脚本,也就硬着头皮一遍查阅资料一遍做些笔记吧. Ruby字符串中存在chop和chomp的内置函数.我在h ...

  10. Kali linux 安装

    df -m umount  /media exit