java用spring实现文件下载
今天是我第一博客文章,希望写出来的东西能让大家看明白,欢迎大家给我留言。
html页面:
<a href="#" onclick="downLoad()" class="download">下载</a>
我用的ajax像后台发送的请求:
/**文件下载*/
	function downLoad() { 
		  window.open(global_param.context_name+'/upload/fileddown');//此处我用ajax实现调用后台方法。
	}
然后后台具体实现如下:
/**
	 * 文件下载
	 */
	@Transactional
	@Override
	public String fileDown(HttpServletResponse response,HttpServletRequest request) throws Exception {
		String projectPath = request.getServletContext().getRealPath("/");//获取项目的根目录
		String path = projectPath+"/resources/execl/赠送分发.xlsx";//获取到文件exec表的位置,这个地址是你需要下载的文件路径,可以跟你自己的情况写
		File file=new File(path);//创建file对象
		String encoderstr = URLEncoder.encode(file.getName(), "UTF-8");//转字符
		response.setHeader("Content-Disposition", "attachment;filename=\""+encoderstr + "\"");//这样转换后可以避免下载的时候是中文字符
		response.addHeader("Content-Length", "" + file.length()); 
		response.setContentType("application/x-msdownload;"); 
		response.setCharacterEncoding("UTF-8"); 
		OutputStream outputStream = new BufferedOutputStream(response.getOutputStream());   
		InputStream inputStream = new FileInputStream(file);
		byte[] buffer = new byte[1024];
		int i = -1;
		while ((i = inputStream.read(buffer)) != -1) {
		    outputStream.write(buffer, 0, i);
		}
		outputStream.flush();   
		outputStream.close(); //关闭文件流很关键
		return "success";
	}
最后就写完了,希望能帮助到大家!
java用spring实现文件下载的更多相关文章
- 【JAVA】Spring 数据源配置整理
		在Spring中,不但可以通过JNDI获取应用服务器的数据源,也可以直接在Spring容器中配置数据源,此外,还可以通过代码的方式创建一个数据源,以便进行无依赖的单元测试. 配置数据源 ... 
- java 利用spring JavaMailSenderImpl发送邮件,支持普通文本、附件、html、velocity模板
		java 利用spring JavaMailSenderImpl发送邮件,支持普通文本.附件.html.velocity模板 博客分类: Java Spring 本文主要介绍利用JavaMailS ... 
- REST Security with JWT using Java and Spring Security
		Security Security is the enemy of convenience, and vice versa. This statement is true for any system ... 
- [Java] 使用 Spring 2 Portlet MVC 框架构建 Portlet 应用
		转自:http://www.ibm.com/developerworks/cn/java/j-lo-spring2-portal/ Spring 除了支持传统的基于 Servlet 的 Web 开发之 ... 
- RabbitMQ与java、Spring结合实例详细讲解(转)
		林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文介绍了rabbitMq,提供了如何在Ubuntu下安装RabbitMQ 服务的方法. ... 
- (转)java之Spring(IOC)注解装配Bean详解
		java之Spring(IOC)注解装配Bean详解 在这里我们要详细说明一下利用Annotation-注解来装配Bean. 因为如果你学会了注解,你就再也不愿意去手动配置xml文件了,下面就看看 ... 
- Java框架spring Boot学习笔记(六):Spring Boot事务管理
		SpringBoot和Java框架spring 学习笔记(十九):事务管理(注解管理)所讲的类似,使用@Transactional注解便可以轻松实现事务管理. 
- Java框架spring 学习笔记(十八):事务管理(xml配置文件管理)
		在Java框架spring 学习笔记(十八):事务操作中,有一个问题: package cn.service; import cn.dao.OrderDao; public class OrderSe ... 
- Java框架spring 学习笔记(十四):注解aop操作
		回见Java框架spring Boot学习笔记(十三):aop实例操作,这里介绍注解aop操作 首先编写一个切入点HelloWorld.java package com.example.spring; ... 
随机推荐
- python tile
			tile(A,reps) 创建一个数组,通过reps次重复A >>>a=np.arry([0,1,2])#创建了一个数组 >>>np.tile(a,2)#创建了一个 ... 
- 洛谷  P1019 单词接龙 Label:dfs
			题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相连时,其重合 ... 
- 【BZOJ】1179: [Apio2009]Atm(tarjan+spfa)
			http://www.lydsy.com/JudgeOnline/problem.php?id=1179 缩点建图... #include <cstdio> #include <cs ... 
- GIT用法总结
			1 git中的几种文件状态 a 未被git跟踪的文件,即是没有使用git add添加到git索引的的文件:untracked; b 没有修改但是已经被git跟踪的文件,即是使用git add添加到gi ... 
- Mysql_mysql 性能分析及explain用法
			1 使用explain语句去查看分析结果,如 explain select * from test1 where id=1;会出现:id selecttype table type possi ... 
- C#开发MySQL数据库程序时需要注意的几点
			一:引用MySQL使用基于Parameter方式代码,总是提示:“Column '列名'cannot be null”解决 MySQL使用基于Parameter方式代码,总是提示:“Column '列 ... 
- mac mysql环境配置
			安装mysql:http://www.mysql.com/downloads/ 找到 MySQL Community Edition (GPL) Community (GPL) Downloads » ... 
- NodeJs - 100
			Nodejs官方文档 https://nodejs.org/en/docs/ Nodejs官方网站 https://nodejs.org/en/ Nodejs的特征: 1.采用非阻塞性IO机制:—— ... 
- 通过ReflectionMethod,我们可以得到Person类的某个方法的信息
			PHP反射api由若干类组成,可帮助我们用来访问程序的元数据或者同相关的注释交互.借助反射我们可以获取诸如类实现了那些方法,创建一个类的实例(不同于用new创建),调用一个方法(也不同于常规调用),传 ... 
- 【转】我们应该如何去了解JavaScript引擎的工作原理
			原文地址:http://www.nowamagic.net/librarys/veda/detail/1579 昨天收到一封来自深圳的一位前端童鞋的邮件,邮件内容如下(很抱歉,未经过他的允许,公开邮件 ... 
