做了一个小工具,一个JSP页面,放在Tomcat下,用来下载最新的日志文件。其中文件会被打包成zip格式。
<%@page import="java.io.*"%>
<%@page import="java.util.zip.*"%>
<%
String logDirFullPath ="D:\\temp\\cmd\\scripts";
String zipFileFullPath="D:\\temp\\cmd\\logs.zip";
File dirFile=new File(logDirFullPath);
File zipFile=new File(zipFileFullPath);
if(zipFile.exists()){
zipFile.delete();
}
ZipOutputStream zipOutStream=new ZipOutputStream(new FileOutputStream(zipFileFullPath));
String base="";
//zipOutStream.putNextEntry(new ZipEntry(base));
for(File f:dirFile.listFiles()){
if(f.isFile()&&((System.currentTimeMillis()-f.lastModified())<(24*60*60*1000))){
ZipEntry entry=new ZipEntry(base+f.getName());
entry.setTime(f.lastModified());
zipOutStream.putNextEntry(entry);
FileInputStream fis=new FileInputStream(f);
byte[] buffer=new byte[1024000];
int b;
while((b=fis.read(buffer))!=-1){
zipOutStream.write(buffer, 0, b);
}
fis.close();
}
}
zipOutStream.close();
////////////////////////////////////////////////////////////////////////////////////////
File file=new File(zipFileFullPath);
byte[] data=new byte[(int)file.length()];
FileInputStream fis=null;
try{
fis=new FileInputStream(file);
int r=fis.read(data);
}catch(Exception e){
e.printStackTrace();
}finally{
if(fis!=null){
try{
fis.close();
}catch(Exception ioe){
ioe.printStackTrace();
}
}
}
response.setHeader("Content-Disposition", "attachment; filename=\""+file.getName()+"\"");
response.addHeader("Content-Length", "" + data.length);
response.setContentType("application/octet-stream;charset=UTF-8");
OutputStream outputStream = new BufferedOutputStream(response.getOutputStream());
outputStream.write(data);
outputStream.flush();
outputStream.close();
response.flushBuffer();
%>