使用HttpServletResponse下载文件
@RequestMapping("/down") public void down(HttpServletRequest request,HttpServletResponse response) throws Exception{ //1.获取要下载的文件的绝对路径 String realPath = "/data/software/db/mysql-workbench-community-6.3.7-osx-x86_64.dmg"; //2.获取要下载的文件名 String fileName = realPath.substring(realPath.lastIndexOf("/") + 1); //3.设置content-disposition响应头控制浏览器以下载的形式打开文件 response.setHeader("content-disposition","attachment;filename=" +fileName); //4.获取要下载的文件输入流 InputStream in = new FileInputStream(realPath); int len = 0; //5.创建数据缓冲区 byte[] buffer = new byte[1024]; //6.通过response对象获取OutputStream流 OutputStream out = response.getOutputStream(); //7.将FileInputStream流写入到buffer缓冲区 while((len = in.read(buffer)) > 0) { //8.使用OutputStream将缓冲区的数据输出到客户端浏览器 out.write(buffer,0, len); } in.close(); }