HttpServletResponse如何实现文件下载呢?

java-教程王 Servlet 发布时间:2022-01-02 09:57:01 阅读数:15756 1
下文讲述HttpServletResponse实现文件下载的示例分享,如下所示:
HttpServletResponse文件下载流程如下:
1.获取要下载的文件的绝对路径
2.获取要下载的文件名
3.设置content-disposition响应头控制浏览器以下载的形式打开文件
4.获取要下载的文件输入流
5.创建数据缓冲区//缓冲区解释见下文
6.通过response对象获取OutputStream流
7.将FileInputStream流写入到buffer缓冲区
8.使用OutputStream将缓冲区的数据输出到客户端浏览器
例:
使用OutputStream下载xls文件的示例
//HttpServletResponse OutputStream下载xls文件
@RequestMapping("/download")
public void download(HttpServletRequest req,HttpServletResponse res){
	String fileName = "51gjie java教程.xls";//要下载的文件名
	String realPath = req.getSession().getServletContext().getRealPath("/testWeb/download");
	File file=new File(realPath+"/"+fileName); //设置content-disposition响应头控制浏览器以下载的形式打开文件
	res.setCharacterEncoding("utf-8");
	res.setContentType("application/octet-stream");
	res.setHeader("Content-Disposition", "attachment;fileName="+ URLEncoder.encode("java265.xls", "UTF-8"));
	InputStream inputStream=new FileInputStream(file);根据路径获取要下载的文件输入流 
	OutputStream out = res.getOutputStream();
	byte[] b=new byte[1024];  //创建数据缓冲区
	int length;  
	while((length=inputStream.read(b))>0){  把文件流写到缓冲区里
		out.write(b,0,length);  
	}  
	out.flush();
	out.close();
	inputStream.close();
}
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/Servlet/202201/248.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者