protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //1 获取下载文件的路径 String realPath = "/Users/xuyifan/Code/javaweb-01-servlet/servlet-response/src/main/resources/img.png"; System.out.println(realPath); //获取下载文件名 String fileName = realPath.substring(realPath.lastIndexOf("\\") + 1); //设置浏览器能够支持(Content-Disposition),下载需要的东西 response.setHeader("Content-Disposition","attachment;filename="+fileName+ URLEncoder.encode(fileName,"utf-8")); //获取下载文件的输入流 FileInputStream in = new FileInputStream(realPath); //创建缓冲区 int len=0; byte[] buffer = new byte[1024]; //获取输出流的对象 ServletOutputStream outputStream = response.getOutputStream(); //将FileOutputStream流写入到buffer缓冲区,使用OutputStream将缓冲区的数据输出到客户端 while ((len=in.read(buffer))>0){ outputStream.write(buffer,0,len); } in.close(); outputStream.close(); }
原文:https://www.cnblogs.com/happyxyf/p/14741490.html