十分简单,不过多赘述,看代码。
@GetMapping("/downloadTemplate")
public void downloadExcelFile(HttpServletResponse response) throws IOException {
// 使用系统属性获取正确的路径分隔符
String separator = File.separator;
// 文件的存放路径
String path = System.getProperty("user.home") + separator + "Desktop" + separator + "testImport.xlsx";
// 读到流中
InputStream is = new FileInputStream(path);
BufferedInputStream inputStream = new BufferedInputStream(is);
response.reset();
response.setContentType("application/octet-stream");
String filename = new File(path).getName();
response.addHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(filename, "UTF-8"));
ServletOutputStream outputStream = response.getOutputStream();
byte[] b = new byte[1024];
int len;
//从输入流中读取一定数量的字节,并将其存储在缓冲区字节数组中,读到末尾返回-1
while ((len = inputStream.read(b)) > 0) {
outputStream.write(b, 0, len);
}
inputStream.close();
is.close();
}