response下载 流程

    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();
    }

 

posted @ 2021-05-07 16:05  jueqishizhe  阅读(196)  评论(0)    收藏  举报