You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

70 lines
2.6 KiB
Plaintext

<%@ page import="java.io.*, java.util.zip.*, java.util.Map, java.util.HashMap" %>
<%@ page import="weaver.conn.RecordSet" %>
<%@ page import="weaver.general.StringUtil" %>
<%@ page import="com.weaver.general.BaseBean" %>
<%
//rootpath 根路径
String rootpath = "/opt/weaver/ecology";
// 文件路径和名称映射
Map<String, String> files = new HashMap<>();
RecordSet recordSet = new RecordSet();
recordSet.executeQuery("select * from hrmresource where messagerurl is not null");
while (recordSet.next()){
String messagerurl = rootpath + recordSet.getString("messagerurl");
String Format = messagerurl.substring(messagerurl.lastIndexOf(".")+1);
String lastname = recordSet.getString("lastname");
String loginid = recordSet.getString("loginid");
if (!StringUtil.isEmpty(messagerurl)){
files.put(lastname+"_"+loginid+"."+Format,messagerurl);
}
}
new BaseBean().writeLog(files+":"+files);
// files.put("example1.zip", "/opt/oadata/archivesFile/20240530/togd_20240530000000.zip");
// files.put("example2.zip", "/opt/oadata/archivesFile/20240530/togd660720.zip");
// 设置响应类型为ZIP文件
response.setContentType("application/zip");
response.setHeader("Content-Disposition", "attachment;filename=files.zip");
// 创建ZIP输出流
try (ZipOutputStream zipOut = new ZipOutputStream(response.getOutputStream())) {
for (Map.Entry<String, String> fileEntry : files.entrySet()) {
String fileName = fileEntry.getKey();
String filePath = fileEntry.getValue();
File fileToZip = new File(filePath);
if (fileToZip.exists() && fileToZip.isFile()) {
try (FileInputStream fis = new FileInputStream(fileToZip)) {
ZipEntry zipEntry = new ZipEntry(fileName);
zipOut.putNextEntry(zipEntry);
byte[] bytes = new byte[1024];
int length;
while ((length = fis.read(bytes)) >= 0) {
zipOut.write(bytes, 0, length);
}
zipOut.closeEntry();
}
} else {
System.err.println("File not found or not a file: " + filePath);
}
}
} catch (IOException e) {
e.printStackTrace();
}
%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Download ZIP</title>
</head>
<body>
<h1>Download ZIP File</h1>
<p>If the download does not start automatically, <a href="/weavernorth/custom/avatar/zipAvatar.jsp">click here</a>.</p>
</body>
</html>