Index: lutingenerator-demo/src/main/java/org/codelutin/generator/demo/http/DownloadResultServlet.java diff -u /dev/null lutingenerator-demo/src/main/java/org/codelutin/generator/demo/http/DownloadResultServlet.java:1.1 --- /dev/null Wed Apr 30 12:31:16 2008 +++ lutingenerator-demo/src/main/java/org/codelutin/generator/demo/http/DownloadResultServlet.java Wed Apr 30 12:31:09 2008 @@ -0,0 +1,45 @@ +package org.codelutin.generator.demo.http; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.OutputStream; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.codelutin.generator.demo.controller.GenerateController; +import org.codelutin.util.ZipUtil; + +public class DownloadResultServlet extends HttpServlet { + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + String id = request.getParameter("id"); + File folder = new File(GenerateController.GEN_DIR, GenerateController.getPrefix(request.getSession().getId()) + id); + File zipFile = File.createTempFile("model-"+id, ".zip"); + ZipUtil.compress(zipFile, folder, null); + + String mimeType = "multipart/x-zip"; + response.addHeader("Content-disposition", "attachment; filename=\"" + zipFile.getName() + "\""); + response.setContentType(mimeType); + + // Set content size + response.setContentLength((int) zipFile.length()); + + // Open the file and output streams + FileInputStream in = new FileInputStream(zipFile); + OutputStream out = response.getOutputStream(); + + // Copy the contents of the file to the output stream + byte[] buf = new byte[1024]; + int count = 0; + while ((count = in.read(buf)) >= 0) { + out.write(buf, 0, count); + } + in.close(); + out.close(); + } + +} //DownloadResultServlet Index: lutingenerator-demo/src/main/java/org/codelutin/generator/demo/http/UploadedFileSessionListener.java diff -u /dev/null lutingenerator-demo/src/main/java/org/codelutin/generator/demo/http/UploadedFileSessionListener.java:1.1 --- /dev/null Wed Apr 30 12:31:16 2008 +++ lutingenerator-demo/src/main/java/org/codelutin/generator/demo/http/UploadedFileSessionListener.java Wed Apr 30 12:31:09 2008 @@ -0,0 +1,21 @@ +package org.codelutin.generator.demo.http; + +import javax.servlet.http.HttpSessionEvent; +import javax.servlet.http.HttpSessionListener; + +import org.codelutin.generator.demo.files.FileHandler; + +public class UploadedFileSessionListener implements + HttpSessionListener { + + public void sessionCreated(HttpSessionEvent evt) { + //Nothing to do + } + + public void sessionDestroyed(HttpSessionEvent evt) { + String sessionId = evt.getSession().getId(); + FileHandler fh = FileHandler.getInstance(); + fh.unvalidateIsolator(sessionId); + } + +} //UploadedFileSessionListener