@RequestMapping("/download")
public String download2(String fileName, HttpServletRequest request, HttpServletResponse response){
FileInputStream fis = null;
try {
//获取文件对象
String path = request.getSession().getServletContext().getRealPath("/uploads/" + fileName);
File file = new File(path);
System.out.println(path);
fis = new FileInputStream(path);
//3.设置response的响应头
//3.1设置响应头类型:content-type
// String mimeType = request.getSession().getServletContext().getMimeType(fileName);//获取文件的mime类型
// response.setHeader("content-type",mimeType);
//3.2设置响应头打开方式:content-disposition
response.setHeader("content-disposition","attachment;filename="+fileName);
//设置文件字节的长度
response.addHeader("Content-Length", "" + file.length());
//设置文件的响应类型为任意类型
response.setContentType("application/octet-stream");
//4.将输入流的数据写出到输出流中
ServletOutputStream sos = response.getOutputStream();
byte[] buff = new byte[1024 * 8];
int len = 0;
while((len = fis.read(buff)) != -1){
sos.write(buff,0,len);
}
sos.flush();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (fis != null) {
fis.close();
}
} catch (IOException e) {
}
}
return "success";
}