import mir.storage.Database;
import mir.storage.StorageObjectException;
import mircoders.entity.EntityUsers;
+import mircoders.entity.EntityUploadedMedia;
import mircoders.storage.DatabaseMediaType;
import mircoders.storage.DatabaseMediafolder;
import mircoders.media.MediaRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.servlet.ServletContext;
+import javax.servlet.ServletOutputStream;
import java.io.IOException;
+import java.io.InputStream;
import java.net.URLEncoder;
import java.util.GregorianCalendar;
import java.util.HashMap;
* ServletModuleBilder -
* liefert HTML fuer Bilder
*
- *
- * @author RK
+ * @version $Id: ServletModuleUploadedMedia.java,v 1.8.2.3 2002/11/27 07:05:47 mh Exp $
+ * @author RK, the mir-coders group
*/
public abstract class ServletModuleUploadedMedia
return (EntityUsers) session.getAttribute("login.uid");
}
+ public void getMedia(HttpServletRequest req, HttpServletResponse res)
+ throws ServletModuleException
+ {
+ String idParam = req.getParameter("id");
+ if (idParam!=null && !idParam.equals("")) {
+ try {
+ EntityUploadedMedia ent = (EntityUploadedMedia)mainModule.getById(idParam);
+ Entity mediaType = ent.getMediaType();
+ MirMedia mediaHandler;
+
+ ServletContext ctx =
+ (ServletContext)MirConfig.getPropAsObject("ServletContext");
+ String fName = ent.getId()+"."+mediaType.getValue("name");
+
+ mediaHandler = MediaHelper.getHandler(mediaType);
+ InputStream in = mediaHandler.getMedia(ent, mediaType);
+
+ res.setContentType(ctx.getMimeType(fName));
+ //important that before calling this res.getWriter was not called first
+ ServletOutputStream out = res.getOutputStream();
+
+ int read ;
+ byte[] buf = new byte[8 * 1024];
+ while((read = in.read(buf)) != -1) {
+ out.write(buf, 0, read);
+ }
+ in.close();
+ out.close();
+ }
+
+ catch (IOException e) {
+ throw new ServletModuleException(e.toString());
+ }
+ catch (ModuleException e) {
+ throw new ServletModuleException(e.toString());
+ }
+ catch (Exception e) {
+ throw new ServletModuleException(e.toString());
+ }
+ }
+ else theLog.printDebugInfo("id nicht angeben.");
+ // darf keine exception werfen
+ }
+
+ public void getIcon(HttpServletRequest req, HttpServletResponse res)
+ throws ServletModuleException
+ {
+ String idParam = req.getParameter("id");
+ if (idParam!=null && !idParam.equals("")) {
+ try {
+ EntityUploadedMedia ent = (EntityUploadedMedia)mainModule.getById(idParam);
+ Entity mediaType = ent.getMediaType();
+ MirMedia mediaHandler;
+
+ ServletContext ctx =
+ (ServletContext)MirConfig.getPropAsObject("ServletContext");
+ String fName = ent.getId()+"."+mediaType.getValue("name");
+
+ mediaHandler = MediaHelper.getHandler(mediaType);
+ InputStream in = mediaHandler.getIcon(ent);
+
+ res.setContentType(ctx.getMimeType(fName));
+ //important that before calling this res.getWriter was not called first
+ ServletOutputStream out = res.getOutputStream();
+
+ int read ;
+ byte[] buf = new byte[8 * 1024];
+ while((read = in.read(buf)) != -1) {
+ out.write(buf, 0, read);
+ }
+ in.close();
+ out.close();
+ }
+
+ catch (IOException e) {
+ throw new ServletModuleException(e.toString());
+ }
+ catch (ModuleException e) {
+ throw new ServletModuleException(e.toString());
+ }
+ catch (Exception e) {
+ throw new ServletModuleException(e.toString());
+ }
+ }
+ else theLog.printDebugInfo("id nicht angeben.");
+ // darf keine exception werfen
+ }
+
}