从java中安装webolgc_Javaweb| 文件下载

news/2025/2/26 7:25:40

后台:Conteoller

/**

* 下载文件

* @param fileurl

* @param session

* @param response

* @throws IOException

*/

@RequestMapping("/download")

public void getFile(String fileurl,  HttpSession session, HttpServletResponse response)

throws IOException {

String basePath = session.getServletContext().getRealPath("/");// 获取基本路径

if (null!=fileurl && !fileurl.equals("")) {

/* 第一步:根据文件路径获取文件 */

File file = new File(basePath + "\\images\\" +fileurl);

if (file.exists()) { // 文件存在

/* 第二步:根据已存在的文件,创建文件输入流 */

InputStream inputStream = new BufferedInputStream(new FileInputStream(file));

/* 第三步:创建缓冲区,大小为流的最大字符数 */

byte[] buffer = new byte[inputStream.available()]; // int available() 返回值为流中尚未读取的字节的数量

/* 第四步:从文件输入流读字节流到缓冲区 */

inputStream.read(buffer);

/* 第五步: 关闭输入流 */

inputStream.close();

String fileName = file.getName();// 获取文件名

response.reset();

response.addHeader("Content-Disposition",

"attachment;filename=" + new String(fileName.getBytes("utf-8"), "iso8859-1"));

response.addHeader("Content-Length", "" + file.length());

/* 第六步:创建文件输出流 */

OutputStream outputStream = new BufferedOutputStream(response.getOutputStream());

response.setContentType("application/octet-stream");

/* 第七步:把缓冲区的内容写入文件输出流 */

outputStream.write(buffer);

/* 第八步:刷空输出流,并输出所有被缓存的字节 */

outputStream.flush();

/* 第九步:关闭输出流 */

outputStream.close();

}else{

return;

}

}

}

使用文件流的方式将文件下载到本地。


http://www.niftyadmin.cn/n/712242.html

相关文章

Git-命令的使用

2019独角兽企业重金招聘Python工程师标准>>> 丢弃历史 如现有提交历史: A->B->C->D->E->F,欲丢弃 C 之前的提交历史使得历史记录变为: C->D->E->F,则此时:基于 C 创建一个根提交,可以使用 git commit-tree将 D,E,F 变基到刚创建的根提交上.…

Java内部抽象类的匿名类初始化

说在前面的话,以前写过一次这个变态代码,后来重构,把那个new的语法简化了,最近又要整,差点都想不起来了,留个文档把 1、下面这个案例更变态,抽象类还有一个个泛型类:首先内部抽象类的…

matebook14支持触摸屏吗_2020款的matebook14增加了多点触控屏是最大亮点

华为matebook14终于获得了Windows的授权,而且更新十代酷睿处理器,更加值得一提的是,MateBook13/14版新增了触屏这一操作黑科技,也就是说,我们以后用的电脑也可以像手机一样,直接用手触屏操作。比如我们想放…

简单邮箱源码java_简单的java实现发送电子邮件

这里实现用Java发送电子邮件,可以发送简单文本,或者html,再或者就是带附件了。首先就是需要两个包,我用的是apache中commons中的,下载地址http://commons.apache.org/可以去下载。需要的两个包为:mail.jar、…

Word2007插入两种页码

做毕设,摘要,Abstract,目录,第一章,现在想要“摘要,Abstract,目录”编页码“为罗马数字,第一章开始为阿拉伯数字,可以按如下步骤: 1.各部分插入分页符&#x…

docker制作镜像

1.下载镜像: docker pull centos:7.2.1511 2.查看本地有哪些镜像 docker images 3.启动docker docker run -ti 8686(image ID即镜像Id) 4.改变镜像 yum install vim 5.退出镜像 6.提交镜像 docker commit -m "modify vim" xxx_image 7.此时docker image可…

ts获取服务器数据_ionic4中数据交互get post jsonp请求服务器数据

ionic4.x中请求数据和angular中几乎是一样的,其中get、post和和服务器交互使用的是HttpClientModule模块。下面我们看看ionic4中数据交互get post jsonp请求服务器数据。一、ionic4.x get 请求数据Angular5.x以后get、post和和服务器交互使用的是HttpClientModule模…

从安全和成本来看企业混合云的演变

爆炸性的数据让企业考虑混合云存储来满足容量需求。但云的成本和安全问题需要解决。 各种规模的企业都面临非结构化数据集前所未有的增长速度。 增长的速度和使用的容量主要是源于捕捉和传输数据的物联网设备的快速部署。 许多小型企业正寻求公共云来帮助他们跟上这种爆炸性增长…