java下載檔案

來源:互聯網
上載者:User

標籤:

檔案下載不需要第三包就是靠檔案流、位元組輸入輸出資料流實現。

<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異常,不過上述代碼中本人去掉這兩行也沒錯。

java下載檔案

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.