java下载文件到浏览器默认路径

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog..net/mengmeng2222222

一、controller层代码:

@RequestMapping("/downExcel")

@ResponseBody

public Object downExcel(){

try {

File file=ResourceUtils.getFile("classpath:doc"); //获取resources下面的doc下面的文件

File[] files=file.listFiles();

return FileUtil.downloadFile(files[0]); //files[0]是要下载到默认浏览器路径的文件

} catch (Exception e) {

return MarkUtil.markRetunMsg(false,"下载失败");

}

}

注释:运用spring中的ResourceUtils.getFile读取jar包内文件,也就是获取的是下图中的文件

二、FileUtil类中的downloadFile方法如下:

/**

* 文件下载

* @param file

* @throws IOException

*/

public static ResponseEntity downloadFile(File file) throws IOException {

if (file.exists()) {

FileSystemResource fileSource = new FileSystemResource(file);

return downloadFile(fileSource.getInputStream(),fileSource.getFilename());

}

return null;

}

public static ResponseEntity downloadFile(InputStream in,String fileName) {

try {

byte[] testBytes = new byte[in.available()];

HttpHeaders headers = new HttpHeaders();

headers.add("Cache-Control", "no-cache, no-store, must-revalidate");

headers.add("Content-Disposition", String.format("attachment; filename=\"%s\"", MarkUtil.convertFileName(fileName)));

headers.add("Pragma", "no-cache");

headers.add("Expires", "0");

return ResponseEntity

.ok()

.headers(headers)

.contentLength(testBytes.length)

.contentType(MediaType.parseMediaType("application/octet-stream"))

.body(new InputStreamResource(in));

} catch (IOException e) {

e.printStackTrace();

}

return null;

}

三、MarkUtil类中的convertFileName方法如下:

/**

* chinese code convert

* @param fileName

* @return

*/

public static String convertFileName(String fileName) {

if(isContainChinese(fileName)) {

try {

fileName = URLEncoder.encode(fileName, "UTF-8");

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

}

}

return fileName;

}

亲测有效!!!!!如果对你有帮助了,一定要点个赞哇,整理不易。

可以转载,但是务必加上来源,谢谢!

java获取默认下载路径吗_java下载文件到浏览器默认路径相关推荐

  1. java 获取每月每一天_java 求取某一段时间内的每一天、每一月、每一年

    1.求取某一段时间内的每一天 Date date0 = new SimpleDateFormat("yyyy-MM-dd").parse("2014-01-01" ...

  2. java读取xml路径问题_java 中读取xml 和绝对路径

    一.得到绝对路径 本人用到的不多,就列举常用的. 以上2种可读取固定配置文件可用得到绝对路径 1.System.getProperty("user.dir"); 这个东西局限性十分 ...

  3. java 获取当前第几周_java获取第几周

    java获取第几周 1.首先创建一个getWeek函数,接收一个Date类型的参数: 2.然后在函数内创建一个GregorianCalendar实例: 3.之后设置GregorianCalendar实 ...

  4. java 获取三天前时间_java 获取前几天时间

    标签: java   获取前几天时间 一.toLocaleString()函数过时: //当前时间 Date endDate=new Date(); String endTime=endDate.to ...

  5. java获取0点的时间戳_Java获取凌晨时间戳的方法分析

    本文实例讲述了java获取凌晨时间戳的方法.分享给大家供大家参考,具体如下: 这两天有一个需求是查询用户匹配的推荐信息,包含一个有效时间段,以天为单位,0时0分0秒这种. 通常java中有两种方案: ...

  6. java获取系统当前时间格式化_java 获取系统当前时间并格式化

    java 获取系统当前时间并格式化 CreateTime--2018年5月9日11:41:00 Author:Marydon 实现方式有三种 updateTime--2018年7月23日09点32分 ...

  7. java 判断是否为cst格式_Java判断文件编码格式

    1:简单判断是UTF-8或不是UTF-8,因为一般除了UTF-8之外就是GBK,所以就设置默认为GBK. 按照给定的字符集存储文件时,在文件的最开头的三个字节中就有可能存储着编码信息,所以,基本的原理 ...

  8. JAVA随机读写功能实现类_Java 实现文件随机读写-RandomAccessFile

    RandomAccessFile是Java中输入,输出流体系中功能最丰富的文件内容访问类,它提供很多方法来操作文件,包括读写支持,与普通的IO流相比,它最大的特别之处就是支持任意访问的方式,程序可以直 ...

  9. java获取C盘下的隐藏目录文件名称

    题记   --  执剑天涯,从你的点滴积累开始,所及之处,必精益求精,即是折腾每一天.    网易云课堂 Flutter开发中的点滴积累 在Java中, File类用来将文件或者文件夹封装成对象,方便 ...

最新文章

  1. golang 得到 结构体 struct 标签 tag 内容 结构体中的``数据
  2. httpcline转发_如何实现Http请求报头的自动转发[应用篇]
  3. linux socket 编程(C语言)
  4. Charles 映射本地文件map local
  5. Linux 内核里的数据结构——基数树
  6. django中自定义了manager函数,使用的时候报错AttributeError: 'Manager' object has no attribute 'title_count'...
  7. 加密狗 破解 复制 模拟 软件
  8. 金融计量学第一次实验:eviews做多元线性回归分析
  9. html流特性,CSS深入理解流体特性和BFC特性下多栏自适应布局_html/css_WEB-ITnose
  10. 关于VLAN Tag,PVID的问题
  11. ora-01045 :user system lacks create session privilege; logon denied
  12. PS CC 2018 切片复制问题解决方法
  13. 一图掌握项目管理的20条锦囊妙计
  14. java毕业设计颜如玉图书销售网站的设计与实现Mybatis+系统+数据库+调试部署
  15. Java 2023发展趋势
  16. EMA—项目 需求设计文档
  17. 淘宝评论接口可以获取PC端,app端
  18. C++如何输出彩色字体
  19. ofo创始人戴威称共享单车日收入接近1000万
  20. 微信小程序-QQ音乐

热门文章

  1. jeesite4打包部署到服务器
  2. 模型训练损失,正确率绘制曲线图
  3. creator 跳跃弧线_CocosCreator零基础制作游戏《极限跳跃》一、游戏分析
  4. 驾考宝典科目一2015免费版
  5. SSH使用及协议分析。
  6. java svg 转pdf_Java PDF转HTML、Word、图片、SVG、XPS、 PDF/A等格式
  7. markdown入门学习
  8. 基于python的RBM实现
  9. QSPI和SPI是什么关系,区别是什么?
  10. php设计模式及耦合性和多形性