1. 程式人生 > >Servlet 中直接彈出"檔案另存為..."對話方塊

Servlet 中直接彈出"檔案另存為..."對話方塊

//當單擊頁面中的某按鈕呼叫此方法時,瀏覽器直接彈出“另存為...”對話方塊, Chorme則直接下載該檔案

// 而不用其它頁面做中轉
protected void
doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

             //取得輸出流

            ServletOutputStream out = response.getOutputStream();

            request.setCharacterEncoding("UTF-8");
            int
BUFFER = 1024*10;
            byte data[] = new byte[BUFFER];
            BufferedInputStream bis = null;
            FileInputStream fis = new FileInputStream(zipFileName);
            
            int read;
            
            bis = new BufferedInputStream(fis,BUFFER);

            response.setContentType("application/OCTET-STREAM"

);

        
            // 檔名可以任意指定, 本例中輸出的檔名為 test.zip,

            response.setHeader("Content-Disposition","attachment; filename="+"test.zip;");        
            
            while((read = bis.read(data)) != -1){
                out.write(data, 0, read);
            }
            fis.close();

            bis.close();

}