Java实现文件下载
一、前台通过a标签打开接口,传入文件id
<a href="/cdc/announcement/downloadFile/1">下载</a>
二、后台接收id,查找对应文件,进行下载
@RequestMapping(value = "downloadFile/{id}", method = RequestMethod.GET)@PreAuthorize("hasAuthority('view')")@ResponseBodypublic void downloadFile(HttpServletRequest req, HttpServletResponse resp, @PathVariable("id") Long id) {AnnouncementAnnex announcementAnnex = announcementAnnexService.selectById(id);//真实文件名String name = announcementAnnex.getAnnexUrl();String downloadName=announcementAnnex.getAnnexName();
// 进行转码后的文件名,用来下载之后的文件名PublicController.download(resp,name,downloadName);}
其中download方法
/*** @param resp* @param name 文件真实名字* @param downloadName 文件下载时名字*/public static void download(HttpServletResponse resp, String name, String downloadName) {String fileName = null;try {fileName = new String(downloadName.getBytes("GBK"), "ISO-8859-1");} catch (UnsupportedEncodingException e) {e.printStackTrace();}///home/tomcat/apache-tomcat-9.0.1/filesString realPath = "D:" + File.separator + "apache-tomcat-8.5.15" + File.separator + "files";
// String realPath=File.separator+"home"+File.separator+"tomcat"+File.separator+"apache-tomcat-9.0.1"+File.separator+"files";String path = realPath + File.separator + name;File file = new File(path);resp.reset();resp.setContentType("application/octet-stream");resp.setCharacterEncoding("utf-8");resp.setContentLength((int) file.length());resp.setHeader("Content-Disposition", "attachment;filename=" + fileName);byte[] buff = new byte[1024];BufferedInputStream bis = null;OutputStream os = null;try {os = resp.getOutputStream();bis = new BufferedInputStream(new FileInputStream(file));int i = 0;while ((i = bis.read(buff)) != -1) {os.write(buff, 0, i);os.flush();}} catch (IOException e) {e.printStackTrace();} finally {try {bis.close();} catch (IOException e) {e.printStackTrace();}}}
fileName是文件下载之后的名字,filePath是文件所在文件夹地址,path是文件地址,注意设置的响应类型和编码方式
其中File.separator为路径分隔符,他能自动识别是哪个操作系统而使用不同的路径分隔符(windows是‘\’,linux是‘/’)。
Java实现文件下载相关推荐
- java安卓浏览器下载文件,JAVA实现文件下载,浏览器端得到数据没反应解决方案
JAVA实现文件下载,浏览器端得到数据没反应 代码如下 public void doPost(HttpServletRequest request, HttpServletResponse respo ...
- java downloadfile_FileDownload.java:文件下载工具类
FileDownload.java:文件下载工具类 2017-04-25·Mr.Xia 4489 次浏览 文件下载功能的工具类 JavaWeb工具类目录 [http://baike.xsoftlab. ...
- Java Web文件下载
Web文件下载有两种.一种是文件在站点文件夹下.在浏览器中直接输入文件路径就可以下载.如http://www.xxx.com/file.zip.第二种是文件不在站点文件夹下或者文件是动态生成的(导出报 ...
- java临时文件下载_Java临时文件
java临时文件下载 java.io.File class can be used to create temp file in java. Sometimes we need to create t ...
- java二进制文件下载到浏览器默认路径
java二进制文件下载到浏览器默认路径 java二进制文件下载到浏览器默认路径.当然可以下载到指定系统指定路径但是作用不大. 下面是通过调用的开放接口拿到的一个FileBinary二进制文件,输出流输 ...
- java远程文件下载到本地
java远程文件下载到本地 适用场景:我们再登录网站后选择播放音频,如果需要将音频或者视频下载到本地时,而网站资源又进行了加密,无法获得的情况下.使用该工具类模拟浏览器访问下载 package com ...
- JAVA项目文件下载、浏览接口
JAVA项目文件下载.浏览接口 关于文件上传参照我以前写的这个java项目文件上传文章 如果要接口的写法的话,可以下载这个文件上传下载例子下载地址 本篇文章只说文件下载部分 /*** 文件 ...
- java提供文件下载的方法
java提供文件下载的方法 String root = getServletContext().getRealPath( " / " ); String pat ...
- java web 文件下载
java通用文件下载 前端:简单的一个标签 <a href="../emp/OriDownload.do?fileName=421785d6-d76c-46a5-86b4-2cfcb9 ...
- java 防止文件下载_Spring,Java:流式文件下载以避免内存不足错误
我正在开发一个Spring MVC应用程序,用户可以在其中下载文件.用户可以点击触发下载机制的附件.Spring,Java:流式文件下载以避免内存不足错误 昨天,当该多个下载和两个具有约2 GB的文件 ...
最新文章
- hi3516中home中的ko
- 主席树 ---- LCA(树上第k大)Count on a tree
- Android7.0多窗口实现原理(二)
- Android系统原生应用解析之桌面闹钟及相关原理应用之时钟任务的应用(二)
- QT中使用QCustomplot设置坐标原点在左上或者反转镜像坐标轴
- Docker的界面话管理工具
- (转载)关于My97 datepicker与Angular ng-model绑定问题解决。
- 深度思考的能力,决定了你能走多远
- [Python学习] 模块三.基本字符串
- 数学和计算机的应用视频教学反思,数学多媒体教学反思.doc
- json字符串和字典类型的相互转换(转载)
- jQuery 源码解析笔记(一)
- 添加Silverlight应用到HTML
- Ubuntu“无法解析或打开软件包的列表或是状态文件”的解决办法。
- 数据转换软件公司——HYFsoft
- 最新!谷歌浏览器去除CSDN广告插件
- 英中繁简编程术语对照
- 【硕士论文】《动态场景下的语义三维地图构建 》西南科技大学 余东应
- 有五万块钱,在农村养牛怎么样?能养多少头牛?
- Delphi官方下载地址
热门文章
- 宝石典故之“凤凰血染红的鸡血石”
- 健康档案管理系统-毕业设计-SSM框架-SpringBoot2.X-VUE-Antd-MyBatis-Shiro
- 带括号的简单四则计算器(思路)
- 2. Fortran的Hello world-开始Fortran的编程
- 法硕(非法学)进入红圈所究竟有多难?
- 西北工业大学计算机学院801考纲
- java zlib1.dll,zlib1.2.11静态编译
- 语音情感识别研究现状
- 前端HTML5视频_HTML5核心-张晓飞-专题视频课程
- 无向图、深度优先搜索(无向图)、广度优先搜索(无向图)、无向图路径查找(基于深度优先搜索)