Java传统下载和SpringMVC下载
- /**
- * 传统下载
- * @param filename 文件名称
- */
- @RequestMapping(value="download", method={RequestMethod.GET, RequestMethod.POST})
- public void download(HttpServletRequest request, HttpServletResponse response, String filename) {
- String realpath = request.getServletContext().getRealPath("/");
- // 输出文件路径
- String filepath = realpath + filedir + "/" + filename;
- response.setContentType("application/octet-stream;charset=utf-8");
- response.setHeader("Content-Disposition", "attachment;filename=" + filename);
- response.addHeader("Pragma", "no-cache");
- response.addHeader("Cache-Control", "no-cache");
- try {
- OutputStream os = response.getOutputStream();
- InputStream is = new BufferedInputStream(new FileInputStream(filepath));
- byte[] buffer = new byte[4096];
- int length = 0;
- while((length = is.read(buffer)) > 0) {
- os.write(buffer, 0, length);
- }
- is.close();
- os.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- /**
- * SpringMVC下载
- * @return 文件名称
- */
- @RequestMapping(value="graceDownload", method={RequestMethod.GET, RequestMethod.POST})
- public ResponseEntity<byte[]> graceDownload(HttpServletRequest request, String filename) {
- String realpath = request.getServletContext().getRealPath("/");
- // 输出文件路径
- String filepath = realpath + filedir + "/" + filename;
- byte[] byteArray = null;
- try {
- byteArray = FileUtils.readFileToByteArray(new File(filepath));
- } catch(Exception e) {
- e.printStackTrace();
- }
- HttpHeaders headers = new HttpHeaders();
- headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
- headers.setContentDispositionFormData("attachment", filename);
- ResponseEntity<byte[]> responseEntity = new ResponseEntity<byte[]>(byteArray, headers, HttpStatus.CREATED);
- return responseEntity;
- }
Java传统下载和SpringMVC下载的更多相关文章
- springMVC下载FTP上的文件
springMVC下载FTP上的文件 今天没时间写.先上传 一个工具类 工具类 package com.utils; import java.io.File; import java.io.FileO ...
- springmvc下载一个文档下载接口里的文档
A提供了一个文件下载的接口,在调用的时候可以直接在前端用a标签来调用 <a href="http://" target="_blank">下载< ...
- JAVA 实现FTP上传下载(sun.net.ftp.FtpClient)
package com.why.ftp; import java.io.DataInputStream; import java.io.File; import java.io.FileInputSt ...
- 【转】【JAVA应用】多线程断点下载
[转自] 光仔December http://blog.csdn.net/acmman 问题:多线程下载的好处? 多线程下载比单线程下载快,主要的原因是采用多线程下载,可以抢占更多的服务器资源.抢占C ...
- 解决java web中safari浏览器下载后文件中文乱码问题
解决java web中safari浏览器下载后文件中文乱码问题 String fileName = "测试文件.doc"; String userAgent = request.g ...
- CentOS下安装配置NFS并通过Java进行文件上传下载
1:安装NFS (1)安装 yum install nfs-utils rpcbind (2)启动rpcbind服务 systemctl restart rpcbind.service 查看服务状态 ...
- java实现文件上传下载
喜欢的朋友可以关注下,粉丝也缺. 今天发现已经有很久没有给大家分享一篇技术文章了,于是想了一下给大家分享一篇java实现文件上传下载功能的文章,不喜欢的希望大家勿喷. 想必大家都知道文件的上传前端页面 ...
- Java Web 生成临时文件并下载(原)
概述:本文是 java 服务器端生成文件并下载的示例,并不完善,下载之后一般来说还需要删除临时文件. 注意:临时文件存放在 /WEB-INF/tmp 目录下,所以先要把 tmp 目录建起来. pu ...
- Java开发相关官方存档下载地址
前言 集中收藏Java开发中需要用到的常用下载地址 jdk Java SE 最新下载 | Oracle 技术网 : http://www.oracle.com/technetwork/cn/java/ ...
随机推荐
- 《C++ Primer Plus》第15章 友元、异常和其他 学习笔记
友元使得能够为类开发更灵活的接口.类可以将其他函数.其他类和其他类的成员函数作为友元.在某些情况下,可能需要前向声明,需要特别注意类和方法声明的顺序,以正确地组合友元.潜逃类是在其他类中生命的类,它有 ...
- 《转》python学习(5)--数据类型
转自 http://www.cnblogs.com/BeginMan/archive/2013/06/08/3125876.html 一.标准类型函数 cmp():比较大小 str():转换为字符串 ...
- .Net Core 使用EF Core方法
新建项目后,使用NuGet安装包: Install-Package Microsoft.EntityFrameworkCore Install-Package Microsoft.EntityFram ...
- java基础---->多线程之ThreadLocal(七)
这里学习一下java多线程中的关于ThreadLocal的用法.人时已尽,人世还长,我在中间,应该休息. ThreadLocal的简单实例 一.ThreadLocal的简单使用 package com ...
- 豆瓣api开发
前面有说过豆瓣API的开发,在做一些开源项目的时候,很多时候会用到豆瓣API接口,拿过来做测试,现在只是对豆瓣API开发做一些简单的梳理: 豆瓣API开发的接口: https://developers ...
- 有关velocity的资料(等待整理)
proxy-target-class="true" 与proxy-target-class="false"的区别: proxy-target-class属性值决 ...
- PreparedStatement vs Statement
Statement和PreparedStatement之间的区别 1.PreparedStatement是预编译的,对于批量处理可以大大提高效率. 也叫JDBC存储过程 2.使用 Statemen ...
- [Jenkins] 批量删除构建历史
Manage Jenkins -> Script Console def jobName = "Some_Job_Name" def maxNumber = 64 Jenki ...
- C# tostring 格式化输出
C 货币 2.5.ToString("C") ¥2.50 D 十进制数 25.ToString("D5") 00025 E 科学型 25000.ToString ...
- JS/Java/Python格式化金额
//java代码 public static void main(String[] args) { DecimalFormat myformat = new DecimalFormat(); ...