KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > contineo > actions > documan > util > DownloadTicketAction


1 /*
2  * DownloadTicketAction.java
3  *
4  * Created on 27. August 2004, 18:12
5  */

6
7 package org.contineo.actions.documan.util;
8
9 import java.io.File JavaDoc;
10 import java.io.FileInputStream JavaDoc;
11 import java.io.InputStream JavaDoc;
12 import java.io.OutputStream JavaDoc;
13
14 import javax.servlet.http.HttpServletRequest JavaDoc;
15 import javax.servlet.http.HttpServletResponse JavaDoc;
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 /**
32  *
33  * @author Michael Scholz
34  */

35 public class DownloadTicketAction extends Action {
36
37     /**
38      * @uml.property name="logger"
39      * @uml.associationEnd
40      */

41     private Logger logger;
42
43     
44     /** Creates a new instance of DownloadAction */
45     public DownloadTicketAction() {
46         logger = LoggingManager.getLogger(this.getClass());
47     }
48
49     public ActionForward execute(ActionMapping mapping,
50                     ActionForm form, HttpServletRequest JavaDoc request,
51                     HttpServletResponse JavaDoc response) {
52         ActionForward actionForward = new ActionForward();
53         String JavaDoc 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 JavaDoc mimetype = "application/octet-stream";
61                 response.setContentType(mimetype);
62                 SettingConfigurator settings = new SettingConfigurator();
63                 String JavaDoc 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 JavaDoc menuref = menu.getMenuRef();
68                 File JavaDoc file = new File JavaDoc(path + "/" + menuref);
69                 InputStream JavaDoc is = new FileInputStream JavaDoc(file);
70                OutputStream JavaDoc 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 JavaDoc 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