| 1 6 7 package org.contineo.actions.documan.util; 8 9 import java.io.File ; 10 import java.io.FileInputStream ; 11 import java.io.InputStream ; 12 import java.io.OutputStream ; 13 14 import javax.servlet.http.HttpServletRequest ; 15 import javax.servlet.http.HttpServletResponse ; 16 17 import org.apache.log4j.Level; 18 import org.apache.log4j.Logger; 19 import org.apache.struts.action.Action; 20 import org.apache.struts.action.ActionForm; 21 import org.apache.struts.action.ActionForward; 22 import org.apache.struts.action.ActionMapping; 23 import org.contineo.admin.Menu; 24 import org.contineo.admin.dao.MenuDAO; 25 import org.contineo.core.LoggingManager; 26 import org.contineo.core.config.SettingConfigurator; 27 import org.contineo.documan.Document; 28 import org.contineo.documan.DownloadTicket; 29 import org.contineo.documan.dao.DocumentDAO; 30 import org.contineo.documan.dao.DownloadTicketDAO; 31 35 public class DownloadTicketAction extends Action { 36 37 41 private Logger logger; 42 43 44 45 public DownloadTicketAction() { 46 logger = LoggingManager.getLogger(this.getClass()); 47 } 48 49 public ActionForward execute(ActionMapping mapping, 50 ActionForm form, HttpServletRequest request, 51 HttpServletResponse response) { 52 ActionForward actionForward = new ActionForward(); 53 String ticketid = request.getParameter("id"); 54 try { 55 DownloadTicketDAO ticketDao = new DownloadTicketDAO(); 56 DownloadTicket ticket = ticketDao.findByPrimaryKey(ticketid); 57 if (ticket != null && ticket.getMenuid() != 0) { 58 MenuDAO mdao = new MenuDAO(); 59 Menu menu = mdao.findByPrimaryKey(ticket.getMenuid()); 60 String mimetype = "application/octet-stream"; 61 response.setContentType(mimetype); 62 SettingConfigurator settings = new SettingConfigurator(); 63 String path = settings.getValue("docdir") + menu.getMenuPath() + "/" + menu.getMenuId(); 64 DocumentDAO ddao = new DocumentDAO(); 65 Document doc = ddao.findByMenuId(ticket.getMenuid()); 66 response.setHeader("Content-disposition","attachment;filename=" + doc.getDocName() + "." + doc.getDocType()); 67 String menuref = menu.getMenuRef(); 68 File file = new File (path + "/" + menuref); 69 InputStream is = new FileInputStream (file); 70 OutputStream os; 71 os = response.getOutputStream(); 72 int letter = 0; 73 while ((letter = is.read()) != -1) { 74 os.write(letter); 75 } 76 os.flush(); 77 os.close(); 78 is.close(); 79 } 80 actionForward = mapping.findForward("error"); 81 } catch (Exception e) { 82 if (logger.isEnabledFor(Level.ERROR)) 83 logger.error(e.getMessage()); 84 actionForward = mapping.findForward("error"); 85 } 86 return actionForward; 87 } 88 } 89 | Popular Tags |