利用流实现下载文件步骤

1.要获取下载文件的路径
2.下载的文件名是啥
3.设置想办法让浏览器能够支持下载我们需要的东西
4.获取下载文件的输出流
5.创建缓冲区
6.获取OutPutStresm对象
7.将FileOuputStream流写入到buffer缓冲区
8.使用OuputStream将缓冲区中的数据输出到客户端

 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //1.要获取下载文件的路径
        String realPath ="E:\web-servlet\response\src\main\resources\邱智康.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 stream = new FileInputStream(realPath);        //  5.创建缓冲区
        int len = 0;
        byte[] buffer = new byte[1024];        //  6.获取OutPutStresm对象
        ServletOutputStream outputStream = resp.getOutputStream();        // 7.将FileOuputStream流写入到buffer缓冲区
        //  8.使用OuputStream将缓冲区中的数据输出到客户端
        while((len = stream.read(buffer))>0){
            outputStream.write(buffer,0,len);
        }
        outputStream.close();
        stream.close();
    }
原创文章 32 获赞 52 访问量 663

猜你喜欢

转载自blog.csdn.net/qq_42400763/article/details/105638513
今日推荐