今天是我第一博客文章,希望写出来的东西能让大家看明白,欢迎大家给我留言。

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实现文件下载的更多相关文章

  1. 【JAVA】Spring 数据源配置整理

            在Spring中,不但可以通过JNDI获取应用服务器的数据源,也可以直接在Spring容器中配置数据源,此外,还可以通过代码的方式创建一个数据源,以便进行无依赖的单元测试. 配置数据源 ...

  2. java 利用spring JavaMailSenderImpl发送邮件,支持普通文本、附件、html、velocity模板

    java 利用spring JavaMailSenderImpl发送邮件,支持普通文本.附件.html.velocity模板 博客分类: Java Spring   本文主要介绍利用JavaMailS ...

  3. 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 ...

  4. [Java] 使用 Spring 2 Portlet MVC 框架构建 Portlet 应用

    转自:http://www.ibm.com/developerworks/cn/java/j-lo-spring2-portal/ Spring 除了支持传统的基于 Servlet 的 Web 开发之 ...

  5. RabbitMQ与java、Spring结合实例详细讲解(转)

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文介绍了rabbitMq,提供了如何在Ubuntu下安装RabbitMQ 服务的方法. ...

  6. (转)java之Spring(IOC)注解装配Bean详解

    java之Spring(IOC)注解装配Bean详解   在这里我们要详细说明一下利用Annotation-注解来装配Bean. 因为如果你学会了注解,你就再也不愿意去手动配置xml文件了,下面就看看 ...

  7. Java框架spring Boot学习笔记(六):Spring Boot事务管理

    SpringBoot和Java框架spring 学习笔记(十九):事务管理(注解管理)所讲的类似,使用@Transactional注解便可以轻松实现事务管理.

  8. Java框架spring 学习笔记(十八):事务管理(xml配置文件管理)

    在Java框架spring 学习笔记(十八):事务操作中,有一个问题: package cn.service; import cn.dao.OrderDao; public class OrderSe ...

  9. Java框架spring 学习笔记(十四):注解aop操作

    回见Java框架spring Boot学习笔记(十三):aop实例操作,这里介绍注解aop操作 首先编写一个切入点HelloWorld.java package com.example.spring; ...

随机推荐

  1. python tile

    tile(A,reps) 创建一个数组,通过reps次重复A >>>a=np.arry([0,1,2])#创建了一个数组 >>>np.tile(a,2)#创建了一个 ...

  2. 洛谷 P1019 单词接龙 Label:dfs

    题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相连时,其重合 ...

  3. 【BZOJ】1179: [Apio2009]Atm(tarjan+spfa)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1179 缩点建图... #include <cstdio> #include <cs ...

  4. GIT用法总结

    1 git中的几种文件状态 a 未被git跟踪的文件,即是没有使用git add添加到git索引的的文件:untracked; b 没有修改但是已经被git跟踪的文件,即是使用git add添加到gi ...

  5. Mysql_mysql 性能分析及explain用法

    1 使用explain语句去查看分析结果,如  explain select * from test1 where id=1;会出现:id  selecttype  table  type possi ...

  6. C#开发MySQL数据库程序时需要注意的几点

    一:引用MySQL使用基于Parameter方式代码,总是提示:“Column '列名'cannot be null”解决 MySQL使用基于Parameter方式代码,总是提示:“Column '列 ...

  7. mac mysql环境配置

    安装mysql:http://www.mysql.com/downloads/ 找到 MySQL Community Edition (GPL) Community (GPL) Downloads » ...

  8. NodeJs - 100

    Nodejs官方文档 https://nodejs.org/en/docs/ Nodejs官方网站 https://nodejs.org/en/ Nodejs的特征:  1.采用非阻塞性IO机制:—— ...

  9. 通过ReflectionMethod,我们可以得到Person类的某个方法的信息

    PHP反射api由若干类组成,可帮助我们用来访问程序的元数据或者同相关的注释交互.借助反射我们可以获取诸如类实现了那些方法,创建一个类的实例(不同于用new创建),调用一个方法(也不同于常规调用),传 ...

  10. 【转】我们应该如何去了解JavaScript引擎的工作原理

    原文地址:http://www.nowamagic.net/librarys/veda/detail/1579 昨天收到一封来自深圳的一位前端童鞋的邮件,邮件内容如下(很抱歉,未经过他的允许,公开邮件 ...