JavaWeb - 下载文件

public class FileServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //获取文件下载路径
        String realPath = "D:\\workspace\\servlet\\reponse\\src\\main\\resources\\风景.png";
        System.out.println("下载文件的路径"+realPath);

        //获取文件名
        String fileName = realPath.substring(realPath.lastIndexOf("\\")+1);
        System.out.println("文件名:"+fileName);

        //让浏览器支持我们下载
        resp.setHeader("Content-Disposition","attachment;filename="+URLEncoder.encode(fileName,"UTF-8"));

        //获取下载文件的输入流
        FileInputStream in = new FileInputStream(realPath);

        //创建缓冲区
        int len = 0;
        byte[] buffer = new byte[1024];

        //获取OutputStream对象
        ServletOutputStream out = resp.getOutputStream();

        //将FileOutputStream流写入buffer缓冲区,使用OutputStream将缓冲区数据输出到客户端
        while ((len = in.read(buffer)) > 0){
            out.write(buffer,0,len);
        }
	
		//关闭流
        in.close();
        out.close();

    }

猜你喜欢

转载自blog.csdn.net/qq_41694490/article/details/113830947