文档章节

SpringMVC 文件下载

 没想好
发布于 2015/08/20 11:16
字数 231
阅读 30
收藏 0

核心代码如下:

HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
headers.setContentDispositionFormData("attachment", new String(URLDecoder.decode(name, Constants.UTF8).getBytes(Constants.UTF8), Constants.ISO_8859_1));
return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(new File(URLDecoder.decode(path, Constants.UTF8))), headers, HttpStatus.CREATED)

1、下载乱码

2、IE 提示无法下载此文件

解决方案如下:

1、乱码 

对文件名进行编码,

String fileName = URLEncoder.encode(atta.getFileName(), "UTF-8");
        /*
         * see http://support.microsoft.com/default.aspx?kbid=816868
         */
    if (fileName.length() > 150) {
          String guessCharset = xxxx /*根据request的locale 得出可能的编码,中文操作系统通常是gb2312*/
          fileName = new String(atta.getFileName().getBytes(guessCharset), "ISO8859-1"); 
   }
response.setHeader("Content-Disposition", "attachment; filename=" + fileName);

参考:http://lj830723.iteye.com/blog/1415479

2、无法下载

//源码 package org.springframework.http; public enum HttpStatus 
	/**
	 * {@code 200 OK}.
	 * @see <a href="http://tools.ietf.org/html/rfc2616#section-10.2.1">HTTP/1.1</a>
	 */
OK(200, "OK"),
	/**
	 * {@code 201 Created}.
	 * @see <a href="http://tools.ietf.org/html/rfc2616#section-10.2.2">HTTP/1.1</a>
	 */
CREATED(201, "Created")

//修改为 HttpStatus.OK
return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(new File(path)), headers, HttpStatus.OK)

IE对http1.1支持不够完善. IE不支持201状态码。

状态码:http://tool.oschina.net/commons?type=5


© 著作权归作者所有

粉丝 1
博文 9
码字总数 1611
作品 0
浦东
程序员
私信 提问
SpringMVC框架使用注解执行定时任务

在项目开发过程中,免不了会有一些定时任务。今天就给大家一个SpringMVC框架中利用注解的方式执行定时任务的示例代码 使用到的JAR文件: 点击下列Jar文件会跳到我的网盘下载 aopalliance-1....

Carl_
2015/07/23
1K
0
spring原理案例-基本项目搭建 01 spring framework 下载 官网下载spring jar包

下载spring http://spring.io/ 最重要是在特征下面的这段话,需要注意: All avaible features and modules are described in the Modules section of the reference documentation. Their ......

noteless
2016/02/24
0
0
IDEA 搭建spring源码学习环境

导语: spring源码现在都是gradle版本的了,对于一向使用maven的我,真的是头疼,特此祭奠一下坑吧。 一,下载spring源码 进入github,搜索spring,windows环境就下载zip然后解压,linux我是...

fribble_zwj
2018/11/06
0
0
Spring Boot入门(11)实现文件下载功能

  在这篇博客中,我们将展示如何在Spring Boot中实现文件的下载功能。   还是遵循笔者写博客的一贯风格,简单又不失详细,实用又能让你学会。   本次建立的Spring Boot项目的主要功能为...

但盼风雨来_jc
2018/07/07
0
0
Spring MVC-环境设置(转载实践)

以下内容翻译自:https://www.tutorialspoint.com/springmvc/springmvcenvironment_setup.htm 说明:示例基于Spring MVC 4.1.6。 步骤1-安装Java开发工具包(JDK): 您可以从Oracle的Java站...

easonjim
2017/08/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

oracle ORA-39700: database must be opened with UPGRADE option

ORA-01092: ORACLE instance terminated. Disconnection forced ORA-00704: bootstrap process failure ORA-39700: database must be opened with UPGRADE option 进程 ID: 3650 会话 ID: 29......

Tank_shu
今天
1
0
分布式协调服务zookeeper

ps.本文为《从Paxos到Zookeeper 分布式一致性原理与实践》笔记之一 ZooKeeper ZooKeeper曾是Apache Hadoop的一个子项目,是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它...

ls_cherish
今天
4
0
聊聊DubboDefaultPropertiesEnvironmentPostProcessor

序 本文主要研究一下DubboDefaultPropertiesEnvironmentPostProcessor DubboDefaultPropertiesEnvironmentPostProcessor dubbo-spring-boot-project-2.7.3/dubbo-spring-boot-compatible/au......

go4it
昨天
1
0
redis 学习2

网站 启动 服务端 启动redis 服务端 在redis 安装目录下 src 里面 ./redis-server & 可以指定 配置文件或者端口 客户端 在 redis 的安装目录里面的 src 里面 ./redis-cli 可以指定 指定 连接...

之渊
昨天
2
0
Spring boot 静态资源访问

0. 两个配置 spring.mvc.static-path-patternspring.resources.static-locations 1. application中需要先行的两个配置项 1.1 spring.mvc.static-path-pattern 这个配置项是告诉springboo......

moon888
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部