zoukankan      html  css  js  c++  java
  • java下载文件

    文件下载不需要第三包就是靠文件流、字节输入输出流实现。

    <table>
          <tr>
              <td align="right">
              <a href="download.jsp?path=<%=getServletContext().getRealPath("123.png") %>">下载</a></td>
          </tr>
          </table>

    download.jsp

    <%
            response.setCharacterEncoding("utf-8");
            String pathname = request.getParameter("path");
            pathname = new String(pathname.getBytes("iso-8859-1"));
            File file = new File(pathname);
            InputStream ins = new FileInputStream(file);
            OutputStream os = response.getOutputStream();
            BufferedInputStream bis = new BufferedInputStream(ins);
            BufferedOutputStream bos = new BufferedOutputStream(os);
            response.addHeader("Content-Disposition","attachment;filename="+new String(file.getName().getBytes("utf-8"),"iso-8859-1"));
            response.addHeader("Content-Length",file.length()+"");
            response.setContentType("application/octet-stream");
            int len = 0;
            byte[] bys = new byte[1024];
            while((len=ins.read(bys))!=-1){
                bos.write(bys);
                bos.flush();
            }
            out.clear();
            out = pageContext.pushBody();
            bos.close();
            bis.close();
         %>

    上述代码中调用了out.clear()和pageContext.pushBody()方法,是因为在JSP页面中内置有out,再使用response.getOutStream()方法会抛出java.lang.IllegalStateException异常,不过上述代码中本人去掉这两行也没错。

  • 相关阅读:
    jQuery自学笔记(四):jQuery DOM节点操作
    jQuery自学笔记(三):jQuery动画效果
    jQuery自学笔记(二):jQuery选择器
    面试记录与复盘总结
    wh-研发功能复盘
    st项目-要素标记功能的实现以及经验总结
    ST项目经验总结2
    S台项目记录-1
    统计模型项目开发经验汇总
    开发规范
  • 原文地址:https://www.cnblogs.com/tuifeideyouran/p/4345654.html
Copyright © 2011-2022 走看看