spring mvc ajaxfileupload文件上传返回json下载问题
问题:使用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下载问题的更多相关文章
- Spring MVC的文件上传和下载
简介: Spring MVC为文件上传提供了直接的支持,这种支持使用即插即用的MultipartResolver实现的.Spring MVC 使用Apache Commons FileUpload技术 ...
- 【Spring学习笔记-MVC-13】Spring MVC之文件上传
作者:ssslinppp 1. 摘要 Spring MVC为文件上传提供了最直接的支持,这种支持是通过即插即用的MultipartResolve实现的.Spring使用Jakarta Co ...
- 0062 Spring MVC的文件上传与下载--MultipartFile--ResponseEntity
文件上传功能在网页中见的太多了,比如上传照片作为头像.上传Excel文档导入数据等 先写个上传文件的html <!DOCTYPE html> <html> <head&g ...
- Spring MVC-学习笔记(5)spring MVC的文件上传、下载、拦截器
1.文件上传. spring MVC为文件上传提供了直接的支持,这种支持是即插即用的MultipartResolver(多部分解析器)实现的.spring MVC使用Apache Commo ...
- Spring MVC实现文件上传
基础准备: Spring MVC为文件上传提供了直接支持,这种支持来自于MultipartResolver.Spring使用Jakarta Commons FileUpload技术实现了一个Multi ...
- Spring MVC的文件上传
1.文件上传 文件上传是项目开发中常用的功能.为了能上传文件,必须将表单的method设置为POST,并将enctype设置为multipart/form-data.只有在这种情况下,浏览器才会把用户 ...
- Java Web 学习(8) —— Spring MVC 之文件上传与下载
Spring MVC 之文件上传与下载 上传文件 表单: <form action="upload" enctype="multipart/form-data&qu ...
- MVC+AjaxFileUpload文件上传
来源:微信公众号CodeL 本次给大家分享的是ajaxfileupload文件上传插件,百度一大堆功能超炫的文件上传插件,为什么我们会选择这个插件呢? 原因是在此之前,我们尝试使用过很多基于flash ...
- 使用Spring MVC实现文件上传与下载
前段时间做毕业设计的时候,想要完成一个上传文件的功能,后来,虽然在自己本地搭建了一个ftp服务器,然后使用公司的工具完成了一个文档管理系统:但是还是没有找到自己想要的文件上传与下载的方式. 今天看到一 ...
随机推荐
- UGA,PGA
tom认为UGA不包含 sort工作区,所以下面的图都是错误的 The UGA is, in effect, your sessions state. It is memory that your ...
- OC字符串处理
接到一个需求, 现有多个品牌的商品,使用字符串保存已选中的品牌,使用','隔开,可以反选. 分析问题可知: 1. 字符串由多个品牌名字组成,由 ',' 隔开. 2.如果选中的品牌不在字符串内,则拼接到 ...
- jQuery左侧菜单实例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- c#将List转换成DataTable
前面写了一篇List<T>转换成DataTable,这里主要是完善了前面的代码. 同样使用了emit,我把代码整理后上传了git. 另外增加了特性的设计. 设计了三类特性ColumnTyp ...
- Python实现创建字典
编写一个名为 make_album() 的函数,它创建一个描述音乐专辑的字典.1.这个函数应接受歌手的名字和专辑名,并返回一个包含这两项信息的字典.使用这个函数创建三个表示不同专辑的字典,并打印每个返 ...
- BufferedImage缓存图片(data:image/jpg;base64,)转换base64输出与解析
1.比如说二维码图片数据data,不想落地生成jpg文件,通过java缓存文件转换base64输出到页面展示,那么java后端处理写法参考如下: InputStream is = new ByteAr ...
- 什么是cookie,作用是什么? 以及session的理解
cookie: 1.定义:什么是cookie? cookie就是存储在客户端的一小段文本 2.cookie是一门客户端的技术,因为cookie是存储在客户端浏览器中的 3.cookie的作用:是为了 ...
- 使用xadmin更新数据时,报错expected string or bytes-like object
expected string or bytes-like object 期望的字符串或类似字节的对象,一般为数据类型不匹配造成 本人在实际项目里发现的问题是: 数据库里的字段类型与django里mo ...
- 初识spark
一. spark 概述 1.是什么: Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎.2012年,它是由加州伯克利大学AMP实 验室开源的类 Hadoop MapRedu ...
- LIFO栈 ADT接口 链表实现
LIFO 链栈结构 typedef int ElemType; struct node{ ElemType data; struct node* next; }; typedef struct nod ...