Servlet——实现文件的下载

本文介绍了如何使用Servlet实现文件的下载。通过设置HTTP响应消息头,让浏览器以下载方式处理响应内容。详细步骤包括创建二进制输出流、读取文件内容、将内容写入输出流,最终实现文件的成功下载。
摘要由CSDN通过智能技术生成

Servlet——实现文件的下载

浏览器通常会直接处理响应的实体内容。当我们需要在HTTP响应消息中设置这两个响应消息头字段,来指定接收程序处理数据内容的方式为下载方式,当单击“下载”超链接时,系统将请求提交到对应的Servlet。

下面是一些相关 实现文件下载的代码

// 设置两个响应消息头字段
resp.addHeader("Content-Disposition","attachment;filename=1.jpg");//设置文件名
resp.addHeader("Content-Type","application/x-msdownload");//设置文件类型

创建二进制写入数据响应的流,便于后面写入文件的数据:

ServletOutputStream os = resp.getOutputStream();

获取下载文件的地址,并根据该地址创建文件字节输入流,然后通过该流读取下载文件内容,最后将读取的内容通过输出流写到目标文件中。

// 获取文件的路径
String path=req.getServletContext().getRealPath("/img"); 
File file=new File(path,"1.jpg");
//创建文件字节输入流
InputStream is=new FileInputStream(file);

通过创建的字节数组,读取输入流和写进输出流,并将得到的输出流结果回送到浏览器中。

 byte[] b = new byte[1024*1024];
 int num = 0;
 whi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值