控制器处代码
@GetMapping("/download")
public void download(@RequestParam String fileName, HttpServletResponse response){
try{
System.out.println("file download start.................................");
FileInputStream fileInputStream=new FileInputStream("D://"+fileName);
BufferedInputStream bufferedInputStream=new BufferedInputStream(fileInputStream);
OutputStream os = response.getOutputStream();
byte[] bytes = new byte[bufferedInputStream.available()];
bufferedInputStream.read(bytes);
response.reset();
response.setContentType("application/octet-stream");
response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8")); // 注意,这里要设置文件名的编码,否则中文的文件名下载后不显示
// 写出字节数组到输出流
os.write(bytes);
// 刷新输出流
os.flush();
}catch (Exception e){
e.printStackTrace();
}
}
apifox测试下载
下载成功