@RequestMapping("/downLoadFile")
public String downLoadFile(HttpServletResponse response,HttpServletRequest request) throws Exception {
try {
String basePath = request.getSession().getServletContext().getRealPath("/");
String fileName= "模板.doc"
File file = new File(basePath +fileName);
String agent = request.getHeader("user-agent");//客户端浏览器版本
if(agent.contains("Firefox")){ // 火狐浏览器
fileName= "=?UTF-8?B?"+new BASE64Encoder().encode(fileName.getBytes("utf-8"))+"?=";
}else{ // IE及其他浏览器
fileName= URLEncoder.encode(fileName,"utf-8");
}
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment;fileName="+ fileName);
InputStream inputStream = new FileInputStream(file);
BufferedInputStream bis = new BufferedInputStream(inputStream);
OutputStream os = response.getOutputStream();
BufferedOutputStream bos = new BufferedOutputStream(os);
byte[] b = new byte[2048];
int length;
while ((length = bis.read(b)) != -1) {
bos.write(b, 0, length);
}
// 这里主要关闭。
bos.close();
bis.close();
os.close();
inputStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}