/**
* 文件下载
* @Description:
* @param fileName
* @param request
* @param response
* @return
*/
@RequestMapping("/downloadFile")
public String downloadFile(@RequestParam("fileName") String fileName, HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException {
if (fileName != null) {
String realPath = request.getServletContext().getRealPath("/download/");
File file = new File(realPath, fileName);
if (file.exists()) {
String downloadFielName = new String(fileName.getBytes("UTF-8"),"iso-8859-1");
response.setContentType("application/octet-stream");
response.addHeader("Content-Disposition", "attachment;fileName=" + downloadFielName);// 设置文件名
response.setCharacterEncoding("utf-8");
byte[] buffer = new byte[1024];
FileInputStream fis = null;
BufferedInputStream bis = null;
try {
fis = new FileInputStream(file);
bis = new BufferedInputStream(fis);
OutputStream os = response.getOutputStream();
int i = bis.read(buffer);
while (i != -1) {
os.write(buffer, 0, i);
i = bis.read(buffer);
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
} finally {
if (bis != null) {
try {
bis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (fis != null) {
try {
fis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
return null;
}
上边是处理类
下边是下载链接
<a class="btn btn-sm blue " href="<%=path%>/downloadFile?fileName=条款.docx" data-toggle="modal" > 下载模板 </a>