文件下载2
2015-10-23 14:33
423 查看
上次有一套文件下载的代码,下面是另一种方式:
/** * 下载 * @param path * @param response * @return */ @RequestMapping(value = "/download/{fileName}.{fileType}") public HttpServletResponse download(@PathVariable("fileName")String fileName,@PathVariable("fileType")String fileType, HttpServletResponse response) { try { System.out.println("fileNamefileNamefileName"+fileName); // path是指欲下载的文件的路径。 HttpServletRequest request = ThreadLocalUtil.getRequest(); File file = new File(request.getSession().getServletContext() .getRealPath("/") + "upload/guide/"+fileName+"."+fileType); // 取得文件名。 String filename = file.getName(); // 取得文件的后缀名。 String ext = filename.substring(filename.lastIndexOf(".")+1).toUpperCase(); // 以流的形式下载文件。 InputStream fis = new BufferedInputStream(new FileInputStream(request.getSession().getServletContext() .getRealPath("/") + "upload/guide/"+fileName+"."+fileType)); byte[] buffer = new byte[fis.available()]; fis.read(buffer); fis.close(); // 清空response response.reset(); // 设置response的Header response.addHeader("Content-Disposition", "attachment;filename=" + new String(filename.getBytes("UTF-8"),"ISO8859-1")); response.addHeader("Content-Length", "" + file.length()); OutputStream toClient = new BufferedOutputStream(response.getOutputStream()); response.setContentType("application/octet-stream"); toClient.write(buffer); toClient.flush(); toClient.close(); } catch (IOException ex) { ex.printStackTrace(); } return response; }
相关文章推荐
- 优化程序性能 计算机系统结构 深入理解计算机系统
- Windows2008 Patching(打补丁)
- android 调试方法
- ImageView出现警告[Accessibility]Missing contentDescription attribute on image
- 图像三维形貌检测
- Flarum Story:我为什么开发 Flarum
- 概率-什么是一阶矩,二阶矩?
- 处理器体系结构
- 集算器如何处理文本计算——无结构运算
- QNX openGL ES 图形界面环境配置
- Android调用Jlibrtp库实现RTP发送数据
- UITabelView中cell点击展开功能设计
- Ubuntu 14.04 内核升级 详细步骤
- HttpClient中的 Get 和 Post (一个待优化的WebUtil)
- IOS导航栏颜色渐变与常用属性
- WinForm二三事(三)Control.Invoke&Control.BeginInvoke
- android studio 查看sha1(Mac windows下的问题都可以通过此解决)
- 并行计算
- Set, List And Map
- ArcGIS教程:Nibble (Spatial Analyst)