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异常,不过上述代码中本人去掉这两行也没错。

  • 相关阅读:
    getText() 获取properties中的变量
    Vue----渐进式框架的理解
    appium---学习
    css----overflow(布局)
    css----display(显示) 与 Visibility(可见性)
    css----position(定位)
    中秋节
    找工作清闲的一天
    两天没有好好休息的感觉
    开始正式步入找工作的节奏
  • 原文地址:https://www.cnblogs.com/tuifeideyouran/p/4345654.html
Copyright © 2011-2022 走看看