文档章节

spring mvc下载文件简绍和常见问题

x
 xxm1995
发布于 03/25 10:11
字数 247
阅读 0
收藏 0

1. 使用Servlet API 原生方式下载

	//设置编码为UTF-8
	@RequestMapping(value = "/downTemplate",produces="text/html;charset=UTF-8")
	public void downTemplate(HttpServletResponse response) throws FileNotFoundException {
		//获取文件(web项目中获取绝对地址)
		File file = ResourceUtils.getFile( ResourceUtils.CLASSPATH_URL_PREFIX+"templates/事件测试.xlsx" );
		//设置下载响应头
		response.addHeader("Content-Disposition", "attachment;fileName=" + "x.xlsx");// 设置文件名
		try {
			//复制及写到响应流中
			byte[] bytes = FileUtils.readFileToByteArray( file );
			IOUtils.write( bytes,response.getOutputStream() );
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

2. 使用Spring MVC封装的方式下载

3. 使用Maven时Excel等资源文件损坏问题

<!-- 解决Excel文件损毁问题 -->
<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-resources-plugin</artifactId>
	<configuration>
		<encoding>UTF-8</encoding>
		<nonFilteredFileExtensions>
			<nonFilteredFileExtension>xlsx</nonFilteredFileExtension>
			<nonFilteredFileExtension>xls</nonFilteredFileExtension>
		</nonFilteredFileExtensions>
	</configuration>
</plugin>

4. VUE下载文件

down(){
	axios.get('/event/collectEvent/downTemplate',{
		//设置响应体(必须)
		responseType: 'blob'
	}).then(res => {
		let url = window.URL.createObjectURL(new Blob([res]))
		let link = document.createElement('a')
		link.style.display = 'none'
		link.href = url
		link.setAttribute('download', 'excel.xlsx')
		document.body.appendChild(link)
		link.click()
	})
		.catch(err => {
		console.log(err);
	})
}

© 著作权归作者所有

x
粉丝 0
博文 24
码字总数 12971
作品 0
菏泽
私信 提问
spring mvc - 对静态资源的处理

spring mvc - 对静态资源的处理 spring对静态资源文件(js css htm html jpg jepg png bmp)等的处理方式如下: 一、交由上级web容器处理,在web.xml中的org.springframework.web.servlet.Dis...

凯文加内特
2015/06/19
0
3
这15个经典的Spring面试常见问题你都了解吗?来看看吧

点关注,不迷路;持续更新Java架构相关技术及资讯热文!!! 这篇文章主要是想通过一些问题,加深大家对于 Spring 的理解,所以不会涉及太多的代码!这篇文章整理了挺长时间,下面的很多问题...

Java_苏先生
06/05
0
0
SpringMVC—标签

在Spring3.0中 在Spring3.0.5这个版本上,mvc:annotation-driven/声明是没有 defaultAnnotationHandlerMapping这个属性的,对于@ResultMapping标签的解析,是写死了必须用 "org.springframe...

李长春
2011/09/15
0
0
SpringMVC—标签

在Spring3.0中 在Spring3.0.5这个版本上,mvc:annotation-driven/声明是没有 defaultAnnotationHandlerMapping这个属性的,对于@ResultMapping标签的解析,是写死了必须用 "org.springframe...

李长春
2011/09/15
0
0
fastupload-springmvc 0.5.5 发布

fastupload-springmvc是利用fastupload开源组件Spring MVC框架写的文件上传插件,使用此插件,能在Controller中以注解的方式来获取上传的文件,然后对其进行操作。比使用fastupload核心API更...

仪山湖
2013/04/15
1K
8

没有更多内容

加载失败,请刷新页面

加载更多

Python爬虫也能用手机进行抓包?没错!这个技巧我只告诉你

今天要说说怎么在我们的手机抓包 我们知道了 HTTP 的请求方式 以及在 Chrome 中摸清了一些套路 但是 除了对数据进行解析之外 有时候我们想 对请求的数据或者响应的数据进行篡改 怎么做呢? ...

计算机编程
18分钟前
1
0
趣图:听说996工作可以获得巨大成长

听说996工作可以获得巨大成长 。 。 。 这成长也忒快了吧 扩展阅读 趣图:菜鸟程序员的工作状态… 趣图:当计算机可以更新的时候 趣图:什么?需求文档又改了

Java面经
22分钟前
3
0
influxdb 学习

InfluxDB 学习 安装 brew install influxdb 启动 influxd -config /usr/local/etc/influxdb.conf 入门 $ influx -precision rfc3339Connected to http://localhost:8086 version 1.2.xI......

solate
28分钟前
3
0
快速掌握mongoDB(三)——mongoDB的索引详解

  1 mongoDB索引的管理      2 mongoDB中常用的索引类型      1 单键索引      2 复合索引      3 多键索引      4 哈希索引      3 mongoDB中常用的索引属性   ...

SEOwhywhy
29分钟前
1
0
JackJson中自定义JsonSerializer的使用

最近在做一个需求,一个时间字段,数据库类型为timestamp,默认值为'1970-01-01 08:00:01',产品要求这种情况展示为“-1”,实体类中的属性类型为Date,我也不能把Date属性值设置为“-1”,又...

Coder顾
31分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部