@RequestMapping(value = "/downloadFile")
public void downloadFile(HttpServletResponse response, String attrId) {
StdAttachment attachment = stdAttachmentService.getById(attrId);
String url = attachment.getUrl() + attachment.getFilePath();
String originName = attachment.getOriginName();
String fileName = attachment.getName();
String path = (url + fileName).replaceAll("\\\\", "/");
if (fileName != null) {
File file = new File(path);
if (file.exists()) {
response.setHeader("content-type", "application/octet-stream");
response.setContentType("application/octet-stream");
try {
response.setHeader("Content-Disposition", "attachment;filename=" + new String(originName.getBytes("utf-8"), "ISO-8859-1"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
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) {
e.printStackTrace();
} finally {
if (bis != null) {
try {
bis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (fis != null) {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
}
str += '<@html.button class="els-btn-border-primary" click="download(\\''+rowObject[\"id\"]+'\\')">下载</@html.button>';
function download(attrId) {
document.location.href = "${basePath}/stdAttachment/downloadFile?attrId="+attrId;
}