1 package org.openi.web.controller.admin; 2 3 import org.apache.log4j.Logger; 4 5 import org.openi.project.ProjectContext; 6 7 import org.springframework.web.servlet.ModelAndView; 8 import org.springframework.web.servlet.mvc.AbstractController; 9 10 import java.io.IOException ; 11 import java.util.zip.ZipOutputStream ; 12 13 import javax.activation.FileTypeMap ; 14 15 import javax.servlet.http.HttpServletRequest ; 16 import javax.servlet.http.HttpServletResponse ; 17 18 19 28 public class ProjectDownloadController extends AbstractController { 29 private static Logger logger = Logger.getLogger(ProjectDownloadController.class); 30 31 public ProjectDownloadController() { 32 super(); 33 } 34 35 protected ModelAndView handleRequestInternal(HttpServletRequest request, 36 HttpServletResponse response) throws Exception { 37 logger.debug("zipping up project, sending to servlet output stream"); 38 39 ProjectContext context = (ProjectContext) request.getSession() 40 .getAttribute("projectContext"); 41 42 String filename = context.getProject().getProjectId() + ".zip"; 43 44 FileTypeMap map = FileTypeMap.getDefaultFileTypeMap(); 48 response.setContentType(map.getContentType(filename)); 49 response.setHeader("Pragma", "no-cache"); 50 response.setHeader("Content-Disposition", 51 "attachement; filename=\"" + filename + "\""); 52 53 ZipOutputStream zos = new ZipOutputStream (response.getOutputStream()); 54 try { 55 context.zipProjectContents(zos); 56 } catch(IOException ex) { 57 logger.error("An exception occured while zipping project content", ex); 58 } 59 zos.close(); 60 zos = null; 61 62 return null; 63 } 64 } 65 | Popular Tags |