后台通过读取流的形式,实现下载功能
来源:互联网 发布:本地网络ip 编辑:程序博客网 时间:2024/06/05 04:11
jsp前台:jsp代码内潜入隐藏的form
<div class="accordion"><map name="FPMap0"><area href="#" onclick="downloads();" shape="rect" coords="7, 198, 181, 250"></map><ul style="display: inline-block;"><img src="${ctx}/images/lc.gif" usemap="#FPMap0"/></ul></div><span style="color:#ff0000;"><form id="uploadForm" action="${ctx}/upload/downloadFile" method="post"><input type="hidden" name="fileName" id="fileName" /></form></span>
提交form的js 方法:
<span style="white-space:pre"></span><pre name="code" class="javascript">function downloads() {var fileName="密码重置受理表.doc";$("#fileName").val(fileName);$("#uploadForm").submit();}
controllor 层方法实现
@RequestMapping("/downloadFile") public String download(String fileName, HttpServletResponse response) { try { String path = getRequest().getSession().getServletContext().getRealPath("/") + "docs/" + fileName; logger.info("#downloadFile#path=" + path); File file = new File(path); response.reset(); response.setContentType("application/octet-stream;charset=UTF-8"); response.addHeader("Content-Length", "" + file.length()); String agent = getRequest().getHeader("USER-AGENT"); /*if (null != agent && -1 != agent.indexOf("MSIE") || null != agent && -1 != agent.indexOf("Trident")) {// ie fileName = java.net.URLEncoder.encode(fileName, "UTF8"); } else if (null != agent && -1 != agent.indexOf("Mozilla")) {// 火狐,chrome等 fileName = new String(fileName.getBytes("UTF-8"), "iso-8859-1"); }*/ fileName = new String(fileName.getBytes("gbk"), "iso-8859-1"); response.setHeader("Content-disposition", "attachment; filename=" + fileName); InputStream inputStream = new FileInputStream(file); OutputStream os = response.getOutputStream(); byte[] b = new byte[2048]; int length; while ((length = inputStream.read(b)) > 0) { os.write(b, 0, length); } // 这里主要关闭。 os.close(); inputStream.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } // 返回值要注意,要不然就出现下面这句错误! // java+getOutputStream() has already been called for this response return null; }
0 0
- 后台通过读取流的形式,实现下载功能
- DownTask实现后台下载功能
- 通过response输出流实现下载功能
- EBOOT通过bin文件形式读取、下载LOGO
- EBOOT通过bin文件形式读取、下载LOGO
- web前台后台实现下载功能
- Java后台实现文件下载功能
- 将<select>被选中项的值通过<a>链接的参数形式传递给后台的实现方法
- 用struts2实现下载功能时,浏览器取消下载时后台出现的异常
- 通过servlet实现ftp下载功能
- 下载功能的实现
- 通过.NET实现后台自动发送Email功能的代码示例
- EBOOT通过bin文件形式读取、下载LOGO----韦伯篇之自我分析
- EBOOT通过bin文件形式读取、下载LOGO----韦伯篇之自我分析
- EBOOT通过bin文件形式读取、下载LOGO----韦伯篇之自我分析
- 基于iOS 10、realm封装的下载器(支持存储读取、断点续传、后台下载、杀死APP重启后的断点续传等功能)
- 基于iOS 10封装的下载器(支持存储读取、断点续传、后台下载、杀死APP重启后的断点续传等功能)
- 通过js来设置cookie和读取cookie,实现登陆时记住密码的功能
- CSS fon属性
- 实现ListView过滤功能,继承于BaseAdapter,非ArrayAdapter。
- POJ 2195Going Home(KM或费用流)
- 数据库关键字
- 16.Evaluate the following query: SQL> SELECT promo_name||q'{'s start date was }'||promo_begin_date A
- 后台通过读取流的形式,实现下载功能
- Eclipse--Debug---断点调试
- ajax调用servlet,servlet内无法实现页面跳转
- JavaGUI-Swing
- Mongodb Profiler Output
- jQuery Mobile
- java synchronized详解
- 快捷键
- POJ-1789-Truck History-最小生成树