在原来的SpringBoot–uploadfile项目基础上添加文件下载的Controller:
@RequestMapping(value = "/testDownload", method = RequestMethod.GET)
public void Download(HttpServletResponse res) { String fileName = "1.png"; res.setHeader("content-type", "application/octet-stream"); res.setContentType("application/octet-stream"); res.setHeader("Content-Disposition", "attachment;filename=" + fileName); byte[] buff = new byte[1024]; BufferedInputStream bis = null; OutputStream os = null; try { os = res.getOutputStream(); bis = new BufferedInputStream(new FileInputStream(new File("d://" + fileName))); int i = bis.read(buff); while (i != -1) { os.write(buff, 0, buff.length); os.flush(); i = bis.read(buff); } } catch (IOException e) { e.printStackTrace(); } finally { if (bis != null) { try { bis.close(); } catch (IOException e) { e.printStackTrace(); } } } System.out.println("success"); }
需要下载的文件放在D盘。
@RequestMapping(value = "/download", method = RequestMethod.GET)
public String Download() {
return "/fileDownload"; }
fileDownload.html:
<html>
<head>
<meta charset="UTF-8"/> <title>文件下载示例</title> </head> <body> <h2>文件下载示例</h2> <hr/> <a href="/testDownload">下载</a> </body> </html>