Servlet 实现文件下载

记录一下

protected void doPost(HttpServletRequest request, HttpServletResponse response)

                 throws ServletException, IOException {
         String path = request.getParameter("path");//path为服务器上文件的绝对路径
         File file = new File(path);
        if(file.exists()){
                String fileName = file.getName();
                System.out.println("下载文件名为:"+fileName);
                InputStream is = new BufferedInputStream(new FileInputStream(file));
                byte[] buffer = new byte[is.available()];
                is.read(buffer);
                is.close();
                response.reset();
                response.addHeader("Content-Disposition", "attachment;filename="+ new                     String(fileName.getBytes("GBK"),"ISO-8859-1"));
                response.addHeader("Content-Length", "" + file.length());
                OutputStream os = new BufferedOutputStream(response.getOutputStream());
                response.setContentType("application/octet-stream");//设置文件传输格式,二进制流
                os.write(buffer);
                os.flush();
                os.close();
        }else{
                System.out.println("文件不存在!");
        }
}

你可能感兴趣的:(文件下载,servlet)