package com.occamlab.te.web;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.OutputStream;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.occamlab.te.util.ZipUtils;
/**
* Servlet implementation class for Servlet: DownloadLogServlet
*
*/
public class DownloadLogServlet extends javax.servlet.http.HttpServlet
implements javax.servlet.Servlet {
Config Conf;
public void init() throws ServletException {
Conf = new Config();
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException {
try {
String sessionId = request.getParameter("session");
String zipFileName = sessionId + ".zip";
File userdir = new File(Conf.getUsersDir(), request.getRemoteUser());
// File userdir = new File(Conf.getUsersDir(), "tester1");
File sessiondir = new File(userdir, sessionId);
File zipFile = new File(userdir, zipFileName);
ZipUtils.zipDir(zipFile, sessiondir);
response.setContentType("application/zip");
response.setHeader("Content-Disposition", "attachment; filename="
+ zipFileName + ";");
response.setHeader("Cache-Control", "no-cache");
byte[] buf = new byte[response.getBufferSize()];
response.setContentLength((int) zipFile.length());
System.out.println("file length : " + (int) zipFile.length());
int length;
BufferedInputStream fileInBuf = new BufferedInputStream(
new FileInputStream(zipFile));
// ByteArrayOutputStream baos = new ByteArrayOutputStream();
OutputStream out = response.getOutputStream();
while ((length = fileInBuf.read(buf)) > 0) {
out.write(buf, 0, length);
// baos.write(buf, 0, length);
}
// response.getOutputStream().write(baos.toByteArray());
// response.getOutputStream().flush();
// response.getOutputStream().close();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}