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; ...
随机推荐
- cocos2d ccitemimage
#ifndef __HELLOWORLD_SCENE_H__ #define __HELLOWORLD_SCENE_H__ #include "cocos2d.h" class H ...
- Codeforces Round #192 (Div. 2) A. Cakeminator
#include <iostream> #include <vector> using namespace std; int main(){ int r,c; cin > ...
- MySQL修改root密码的各种方法整理
方法一: 1.首先cmd中输入 net stop mysql //停止Mysql服务 2.然后在my.ini文件中的[mysqld]下面一行添加 skip_grant_tables 3.在cmd ...
- 用特征来实现混入(mix-in)式的多重继承
用特征来实现混入(mix-in)式的多重继承 Scala里相当于Java接口的是特征(Trait).Trait的英文意思是特质和性状(本文称其为特征),实际上他比接口还功能强大.与接口不同的是,它还可 ...
- GC、LOH和Performance相关
Performance Now that we have a basic model for how things are working, let's consider some things th ...
- win7(32/64)+apache2.4+php5.5+mysql5.6 环境搭建配置
引用自:http://blog.csdn.net/z_cf1985/article/details/22454749 环境:win7 32.(64位的同理,下载相关软件必须是对应的64位版本) ...
- 在Excel中实现查询功能
$sn = Read-Host -Prompt "请输入员工号|序列号|资产号" $xl = New-Object -ComObject "Excel.Applicati ...
- System.Data.OracleClient.OracleConnection已过时
解决办法如下: 1.把原来的using System.Data.OracleClient;去掉 2.在oracle安装目录下找到Oracle.DataAccess.dll 添加引用:using Ora ...
- 读取C#AssemblyInfo文件中的AssemblyVersion中的值
System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(); 1.程序集的版本信息由下面四个值组成:主 ...
- LR中Vugen的多进程与多线程(脚本命令行)
Controller使用驱动程序(如mdrv.exe或r3vuser.exe)来运行Vuser.用户可以在Controller的run-time setting中选择Vuser的运行方式:多进程/多线 ...