1 19 20 package com.sslexplorer.navigation.actions; 21 22 import javax.servlet.http.HttpServletRequest ; 23 import javax.servlet.http.HttpServletResponse ; 24 25 import org.apache.struts.action.ActionForm; 26 import org.apache.struts.action.ActionForward; 27 import org.apache.struts.action.ActionMapping; 28 29 import com.sslexplorer.core.CoreUtil; 30 import com.sslexplorer.core.DownloadContent; 31 import com.sslexplorer.core.FileDownloadPageInterceptListener; 32 import com.sslexplorer.core.actions.DefaultAction; 33 import com.sslexplorer.security.SessionInfo; 34 35 41 public class FileDownloadAction extends DefaultAction { 42 43 46 public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) 47 throws Exception { 48 String id = request.getParameter("id"); 49 if (id == null) { 50 return mapping.findForward("failed"); 51 } 52 FileDownloadPageInterceptListener l = (FileDownloadPageInterceptListener) CoreUtil.getPageInterceptListenerById(request 53 .getSession(),FileDownloadPageInterceptListener.INTERCEPT_ID); 54 DownloadContent download = l == null ? null : l.getDownload(Integer.parseInt(id)); 55 if (l == null || download == null ) { 56 return mapping.findForward("failed"); 57 } 58 59 response.setContentType(download.getMimeType() == null ? "application/octet-stream" : download.getMimeType()); 60 response.setHeader("Content-Disposition", "attachment; filename=\"" + download.getFilename() + "\""); 61 download.sendDownload(response, request); 62 63 return null; 64 65 } 66 67 70 public int getNavigationContext(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { 71 return SessionInfo.ALL_CONTEXTS; 72 } 73 74 } | Popular Tags |