HttpServletResponse如何实现文件下载呢?
下文讲述HttpServletResponse实现文件下载的示例分享,如下所示:
使用OutputStream下载xls文件的示例
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(); }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。