spring mvc ajaxfileupload文件上传返回json下载问题

时间:2022-04-16 04:11:33

问题:使用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 学习&lpar;8&rpar; —— Spring MVC 之文件上传与下载

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

  8. MVC&plus;AjaxFileUpload文件上传

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

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

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

随机推荐

  1. 解决Maven工程中报 Missing artifact jdk&period;tools&colon;jdk&period;tools&colon;

    jdk.tools:jdk.tools是与JDK一起分发的一个JAR文件,可以如下方式加入到Maven项目中:<dependency>    <groupId>jdk.tool ...

  2. erl0010 - erlang查看ets 当前系统使用情况和当前配置上限

    1.限制:erlang官网给出了ets的默认上限:“The default is 1400, can be changed with the environment variable ERL_MAX_ ...

  3. &lbrack;iOS微博项目 - 3&period;0&rsqb; - 手动刷新微博

    github: https://github.com/hellovoidworld/HVWWeibo   A.下拉刷新微博 1.需求 在“首页”界面,下拉到一定距离的时候刷新微博数据 刷新数据的时候使 ...

  4. range-bar

    https://github.com/edmodo/range-bar

  5. 平衡搜索树(三) B-Tree

    B树的简介 B 树是为了磁盘或其它存储设备而设计的一种多叉平衡查找树.与红黑树很相似,但在降低磁盘I/0操作方面要更好一些(树的深度较低).许多数据库系统都一般使用B树或者B树的各种变形结构.B树与红 ...

  6. 核心业务系统数据库平台迁移: Oracle -&gt&semi; MySQL

    为了对核心技术拥有更多的自主控制能力,为了解决数据库的线性扩展问题,为了尽量减少对商业软件的依赖,为了摆脱对高端硬件的依赖,为了… 基于以上多种原因,2年前,我们计划将公司某核心应用平台进行大手术:数 ...

  7. iOS 后台定位被拒注意事项

    iOS 后台定位被拒的原因很简单就是没有达到苹果对后台定位的要求. 本地要求: 1.在plist文件中添加字段 "Privacy - Location Always Usage Descri ...

  8. spring-AOP之通知和顾问

    通知和顾问都是切面的实现形式,其中通知可以完成对目标对象方法简单的织入功能. 而顾问包装了通知,可以让我们对通知实现更加精细化的管理,让我们可以指定具体的切入点. 通知分为前置通知,环绕通知及后置通知 ...

  9. noip第14课资料

  10. 分布式监控系统Zabbix-3&period;0&period;3-完整安装记录(3)-监控nginx,php,memcache,Low-level discovery磁盘IO

    前段时间在公司IDC服务器上部署了zabbix3.0.3监控系统,除了自带的内存/带宽/CPU负载等系统资源监控模板以及mysql监控模板外,接下来对诸如nginx.php.memcache.磁盘IO ...