01: package de.webman.content.eventhandler;
02:
03: import com.teamkonzept.web.*;
04: import com.teamkonzept.webman.*;
05: import com.teamkonzept.webman.db.TKWebmanDBManager;
06: import com.teamkonzept.webman.mainint.*;
07: import com.teamkonzept.webman.mainint.db.*;
08: import com.teamkonzept.webman.mainint.db.queries.*;
09: import com.teamkonzept.webman.mainint.events.*;
10: import com.teamkonzept.lib.*;
11: import com.teamkonzept.field.*;
12: import com.teamkonzept.field.db.*;
13: import com.teamkonzept.db.*;
14: import com.teamkonzept.web.servlet.ServletInterface;
15:
16: import java.io.*;
17: import java.sql.*;
18: import javax.servlet.ServletContext;
19: import javax.servlet.http.HttpServletResponse;
20:
21: /**
22: * Validieren von eingegebenem Content
23: *
24: * @author $Author: alex $
25: * @version $Revision: 1.4 $
26: */
27: public class CEMediaGetHandler extends DefaultEventHandler implements
28: ParameterTypes, FrameConstants, DatabaseDefaults,
29: QueryConstants {
30:
31: /** Konstruktor privat - SIngleton !*/
32: private CEMediaGetHandler() {
33: }
34:
35: /** Singleton Instanz */
36: private static CEMediaGetHandler instance = new CEMediaGetHandler();
37:
38: /** Zugriff auf Singleton */
39: public static CEMediaGetHandler getInstance() {
40: return instance;
41: }
42:
43: public void handleEvent(TKEvent evt) throws TKException {
44: try {
45: CEUtils.checkEvent(evt);
46:
47: ServletInterface servletInterface = (ServletInterface) evt
48: .getHttpInterface();
49: ServletContext servletContext = servletInterface
50: .getServletContext();
51: HttpServletResponse response = servletInterface
52: .getResponse();
53: TKHashtable params = evt.getParams().getClass(PARAMETER);
54: String mediaIDStr = (String) params
55: .get(TKUploadField.MEDIA_ID_PARNAME);
56: if (mediaIDStr == null || mediaIDStr.equals("")) {
57:
58: //try to locate file on disk, and save it to db. (for downwardscompatibility oder wie das auf englisch heißt)
59:
60: String appContext = ""; //(String)params.get("APP_CONTEXT");
61: String upbase = (String) params.get("UPBASE");
62: String filename = (String) params.get("FILENAME");
63: String documentRoot = (String) evt.getHttpInterface()
64: .getDocumentRoot();
65:
66: String filepath = documentRoot + appContext + upbase
67: + filename;
68:
69: new File(filepath); // haeh ? -Alex
70: }
71: int mediaID = (new Integer(mediaIDStr)).intValue();
72:
73: String filename = MediaManager.getMediaName(mediaID);
74: String mimeType = servletContext
75: .getMimeType(filename != null ? filename : "");
76: response.setContentType(mimeType);
77:
78: PrintStream out = evt.getOutputStream();
79:
80: MediaManager.writeToOutputStream(out, mediaID);
81:
82: evt.consume();
83:
84: } catch (Throwable e) {
85: // TO DO : Analyze Exception !
86: throw WebmanExceptionHandler.getException(e);
87: }
88: }
89:
90: public boolean isHandler(TKEvent evt) {
91: return evt.getName().equalsIgnoreCase("CE_MEDIA_GET");
92: }
93: }
|