@

目录

最近遇到一个文件上传接口,调用时候出现f.txt下载问题,这个估计很多人都有遇到过,网上找资料,很多博客都是说用如下类似代码:

<mvc:annotation-driven>
<mvc:message-converters>
<bean class="org.springframework.http.converter.StringHttpMessageConverter"/>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/json;charset=UTF-8</value>
<value>text/html;charset=UTF-8</value>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>

反正基本大同小异,不过我测试过,在ie,360极速浏览器都有问题,Spring的版本是4.2.2.RELEASE

接口代码如:

@RequestMapping("/updateHandInfo")
@ResponseBody
public ResultModel updateHandInfo(@RequestParam(value = "file", required = false) MultipartFile file,HttpServletRequest request,
HandleDto handleDto)throws Exception{
try {
...
return new ResultModel(true,"签收成功",resultMap);
} catch (Exception e) {
logger.error("签收失败",e);
return new ResultModel(false,"签收失败",null);
}
}

用网上的方法没解决问题,只能改变一下了,用response的方法,代码改造如:

@RequestMapping("/updateHandInfo")
//@ResponseBody
public void updateHandInfo(@RequestParam(value = "file", required = false) MultipartFile file,HttpServletRequest request,
HandleDto handleDto,,HttpServletResponse response)throws Exception{
String jsonStr = "";
try {
...
jsonStr = JSONObject.toJSONString(new ResultModel(true,"签收成功",resultMap));
} catch (Exception e) {
logger.error("签收失败",e);
jsonStr = JSONObject.toJSONString(new ResultModel(false,"签收失败","0"));
}
// fix bug 直接通过response返回
this.toJson(response, jsonStr);
} protected void toJson(HttpServletResponse response,String jsonString) throws IOException {
response.setContentType("text/html;charset=UTF-8");
response.getWriter().write(jsonString);
}

ResultModel 是封装的Model,这种方法虽然比较麻烦点,不过是可以解决问题的,所以本博客记录起来,仅供互相学习参考

springMVC系列之@Responsebody接口弹出f.txt下载问题的更多相关文章

  1. iOS开发实用技巧—在手机浏览器头部弹出app应用下载提示

    iOS开发实用技巧—在手机浏览器头部弹出app应用下载提示 本文介绍其简单使用: 第一步:在本地建立一个访问的服务端.  打开本地终端,在本地新建一个文件夹,在该文件夹中存放测试的html页面.   ...

  2. 04.LoT.UI 前后台通用框架分解系列之——轻巧的弹出框

    LOT.UI分解系列汇总:http://www.cnblogs.com/dunitian/p/4822808.html#lotui LoT.UI开源地址如下:https://github.com/du ...

  3. 【转】javascript入门系列演示·三种弹出对话框的用法实例

    对话框有三种 1:只是提醒,不能对脚本产生任何改变: 2:一般用于确认,返回 true 或者 false ,所以可以轻松用于 if...else...判断 3: 一个带输入的对话框,可以返回用户填入的 ...

  4. [Flex] PopUpButton系列 —— 打开和关闭弹出菜单

    <?xml version="1.0" encoding="utf-8"?><!--响应打开和关闭弹出菜单的例子 PopUpButtonOpe ...

  5. [Flex] PopUpButton系列 —— 将DataGrid作为弹出内容

    <?xml version="1.0" encoding="utf-8"?> <!--Flex中如何创建一个可以弹出DataGrid作为菜单的 ...

  6. Ext入门学习系列(二)弹出窗体

    第二章 弹出窗体 上节学习了Ext的环境搭建和最基本的一个操作——弹出对话框,作为一个引子,本节讲述如何弹出一个新窗体,从实例讲解Ext的基本运行原理. 一.Ext的窗体长什么样? 先来看看几个效果, ...

  7. [Flex] 组件Tree系列 —— 作为PopUpButton的弹出菜单

    mxml: <?xml version="1.0" encoding="utf-8"?> <!--功能描述:Tree作为PopUpButton ...

  8. javascript入门系列演示·三种弹出对话框的用法实例

    对话框有三种 1:只是提醒,不能对脚本产生任何改变: 2:一般用于确认,返回 true 或者 false ,所以可以轻松用于 if...else...判断 3: 一个带输入的对话框,可以返回用户填入的 ...

  9. jQuery点击图片弹出放大特效下载

    效果体验:http://hovertree.com/texiao/jqimg/1/ 效果图: 代码如下: <!DOCTYPE html> <html> <head> ...

  10. [Js插件]使用JqueryUI的弹出框做一个“炫”的登录页面

    引言 查看项目代码的时候,发现项目中用到JqueryUi的弹出框,可拖拽,可设置模式对话框,就想着使用它弄一个登录页面. 弹出框 在Jquery Ui官网可定制下载弹出框,下载和弹出框下载相关的js文 ...

随机推荐

  1. 2021NOI 省选训练赛day1T1 A. light

    2021NOI 省选训练赛day1T1 A. light Problem 有一排\(n\)个灯,每个灯有一个颜色,用\(1\)到\(m\)表示.一开始所有灯都是关着的. 有\(q\)次操作,每次改变某 ...

  2. ArkUI-X与Android消息通信

    平台桥接用于客户端(ArkUI)和平台(Android或iOS)之间传递消息,即用于ArkUI与平台双向数据传递.ArkUI侧调用平台的方法.平台调用ArkUI侧的方法.本文主要介绍Android平台 ...

  3. Java IO<4>Java io与装饰器模式

    Java io与装饰器模式 装饰器模式 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构.这种类型的设计模式属于结构型模式,它是作为现有的类的一个包 ...

  4. [原创]《C#高级GDI+实战:从零开发一个流程图》第01章:有什么用、有什么效果?

    一.有什么用? 问:现在这个年代哪些场景还需要GDI+? 答:很少,主要是在上位机,复杂一点的自定义控件几乎全由GDI+绘制而成.而且很多工业设备的电脑性能差,WPF等带不起来,只能是Winform. ...

  5. 鸿蒙 Native API 的封装库 h2lib_arkbinder

    h2lib_arkbinder 介绍 code: https://gitee.com/evanown/h2lib_arkbinder 本类库实现 C++ 代码到鸿蒙 Native API 的封装与转换 ...

  6. 直击运维痛点,大数据计算引擎 EasyMR 的监控告警设计优化之路

    当企业的业务发展到一定的阶段时,在系统中引入监控告警系统来对系统/业务进行监控是必备的流程.没有监控或者没有一个好的监控,会导致开发人员无法快速判断系统是否健康:告警的实质则是"把人当服务用 ...

  7. 商品中心—11.商品B端搜索系统的实现文档

    大纲 1.商品数据管理以及binlog监听 2.基于ES的商品B端搜索系统架构设计 3.商品B端搜索系统实现步骤介绍 4.步骤一:ES生产集群部署 5.步骤二:IK分词器改造和部署 6.步骤三:为商品 ...

  8. 第1周作业题-numpy构建基本函数

    numpy构建基本函数 1. Jupyter Notebook ① 编写代码后,通过按 "SHIFT" + "ENTER" 或单击笔记本上部栏中的 " ...

  9. HyperMesh打开保存文件与面板功能使用

    打开和保存文件 在 HyperMesh 中,打开和保存文件是最常用的命令.本节介绍 HyperMesh 打开和保存文件的多种方式.后续的练习中假定用户已经熟练使用 HyperMesh 进行文件打开和保 ...

  10. 从《人月神话》看AIGC是否是软件开发的银弹

    大家好,我是Edison. 最近阅读了钟敬老师的特别策划系列文章<AI时代程序员生存之道>,里面从<人月神话>的视角来讨论AIGC对于辅助软件开发的能力边界 和 程序员的生存之 ...