首页 > 其他分享 >HttpServletResponse下载文件

HttpServletResponse下载文件

时间:2023-01-28 11:55:42浏览次数:31  
标签:文件 realPath buffer resp HttpServletResponse 缓冲区 下载

下载文件

  1. 获取下载文件路径

  2. 下载的文件名

  3. 设置浏览器能够支持下载

  4. 获取下载文件的输入流

  5. 创建缓冲区

  6. 获取OutputStream对象

  7. 将FileOutputStream流写入到buffer缓冲区

  8. 使用OutputStream将缓冲区中的数据输出到客户端

@Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //1. 要获取下载文件路径
        String realPath = "D:\\java代码\\JavaWeb\\javaweb-02-servlet\\response\\target\\classes\\1.png";

        System.out.println("下载文件的路径:"+realPath);
        //2. 下载的文件名是什么
        String fileName = realPath.substring(realPath.lastIndexOf("\\") + 1);
        //3. 设置想办法让浏览器能够支持(Content-Disposition)下载我们需要的东西
        resp.setHeader("Content-Disposition","attachment;filename" + URLEncoder.encode(fileName, "UTF-8"));
        //4. 获取下载文件的输入流
        FileInputStream in = new FileInputStream(realPath);
        //5. 创建缓冲区
        int len = 0;
        byte[] buffer = new byte[1024];
        //6. 获取OutputStream对象
        ServletOutputStream out = resp.getOutputStream();
        //7. 将FileOutputStream流写入到buffer缓冲区,使用OutputStream将缓冲区中的数据输出到客户端
        while((len=in.read(buffer)) > 0){
            out.write(buffer, 0,len);
        }
        in.close();
        out.close();
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }

 

标签:文件,realPath,buffer,resp,HttpServletResponse,缓冲区,下载
From: https://www.cnblogs.com/aqdm-liuliu/p/17070038.html

相关文章