直接上代码:
@RequestMapping("/patchDownLoad")
public void patchDownLoad(HttpServletRequest request,
HttpServletResponse response) throws Exception {
String patchName = request.getParameter("patchName");
String patchPath = request.getParameter("patchPath");
File file = new File(patchPath);
response.setContentType("application/octet-stream");
//下载显示的中文名,解决中文名称乱码问题
String downloadFileName = new String(patchName.getBytes("UTF-8"),"ISO-8859-1");
//application/octet-stream:二进制流数据
response.addHeader("Content-Disposition", "attachment;filename=" + downloadFileName);
byte[] buffer = new byte[2014];
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 Auto-generated catch block
e.printStackTrace();
} finally {
if (bis != null) {
try {
bis.close();
} catch (Exception e) {
}
}
if (fis != null) {
try {
fis.close();
} catch (Exception e) {
}
}
}
}