From d69657b22049ae4b7aea9e2633a8a30dca371c80 Mon Sep 17 00:00:00 2001 From: mh Date: Wed, 27 Nov 2002 08:57:31 +0000 Subject: [PATCH] merge in changes from MIR_1_0 branch that iplement media preview/download in the admin interface. --- source/mircoders/entity/EntityUploadedMedia.java | 6 +- source/mircoders/media/MediaHandlerGeneric.java | 14 ++-- source/mircoders/media/MediaHandlerImages.java | 6 +- source/mircoders/media/MediaHandlerImagesJpeg.java | 18 ++-- source/mircoders/media/MediaHandlerImagesPng.java | 18 ++-- source/mircoders/media/MediaHandlerRealAudio.java | 2 +- source/mircoders/media/MediaHandlerRealVideo.java | 4 +- source/mircoders/servlet/ServletModuleImages.java | 67 +-------------- .../servlet/ServletModuleUploadedMedia.java | 95 +++++++++++++++++++++- templates/admin/audio.template | 3 +- templates/admin/audiolist.template | 5 +- templates/admin/image.template | 4 +- templates/admin/imagelist.template | 6 +- templates/admin/media.template | 3 +- templates/admin/medialist.template | 7 +- templates/admin/video.template | 3 +- templates/admin/videolist.template | 5 +- 17 files changed, 148 insertions(+), 118 deletions(-) diff --git a/source/mircoders/entity/EntityUploadedMedia.java b/source/mircoders/entity/EntityUploadedMedia.java index 1b255423..caf2ab60 100755 --- a/source/mircoders/entity/EntityUploadedMedia.java +++ b/source/mircoders/entity/EntityUploadedMedia.java @@ -47,8 +47,8 @@ import java.util.HashMap; /** * Diese Klasse enthält die Daten eines MetaObjekts * - * @author RK - * @version 29.6.1999 + * @author mh, mir-coders group + * @version $Id: EntityUploadedMedia.java,v 1.12 2002/11/27 08:57:31 mh Exp $ */ @@ -95,7 +95,7 @@ public class EntityUploadedMedia extends Entity { if (key != null) { if (key.equals("big_icon")) returnValue = getBigIconName(); - else if (key.equals("descr")) + else if (key.equals("descr") || key.equals("description")) returnValue = getDescr(); else if (key.equals("mediatype")) returnValue = getMediaTypeString(); diff --git a/source/mircoders/media/MediaHandlerGeneric.java b/source/mircoders/media/MediaHandlerGeneric.java index 9e75b256..5f7b5531 100755 --- a/source/mircoders/media/MediaHandlerGeneric.java +++ b/source/mircoders/media/MediaHandlerGeneric.java @@ -59,7 +59,7 @@ import mir.storage.*; * * @see mir.media.MirMedia * @author mh - * @version $Id: MediaHandlerGeneric.java,v 1.10 2002/11/04 04:35:22 mh Exp $ + * @version $Id: MediaHandlerGeneric.java,v 1.11 2002/11/27 08:57:32 mh Exp $ */ public class MediaHandlerGeneric implements MirMedia @@ -67,10 +67,10 @@ public class MediaHandlerGeneric implements MirMedia protected static String imageHost = MirConfig.getProp("Producer.Image.Host"); protected static String imageRoot = MirConfig.getProp("Producer.ImageRoot"); protected static Logfile theLog = Logfile.getInstance( - MirConfig.getProp("Home")+ + MirConfig.getProp("Home")+ "log/media.log"); private final String sepChar = File.separator; - + public void set (InputStream in, Entity ent, Entity mediaTypeEnt ) throws MirMediaException { @@ -81,7 +81,7 @@ public class MediaHandlerGeneric implements MirMedia try { long size = FileUtil.write(getStoragePath()+sepChar+datePath+ sepChar+mediaFname, in); - ent.setValueForProperty("publish_path",datePath+sepChar+mediaFname); + ent.setValueForProperty("publish_path",datePath+mediaFname); ent.setValueForProperty("size", new Long(size).toString()); ent.update(); } catch (Exception e) { @@ -107,12 +107,12 @@ public class MediaHandlerGeneric implements MirMedia public InputStream getMedia (Entity ent, Entity mediaTypeEnt) throws MirMediaException { - String publishPath = mediaTypeEnt.getValue("publish_path"); + String publishPath = ent.getValue("publish_path"); String fname = getStoragePath()+publishPath; File f = new File(fname); if(! f.exists()) throw new MirMediaException("error in MirMedia.getMedia(): "+fname+ - "does not exist!"); + " does not exist!"); FileInputStream in; try { in = new FileInputStream(f); @@ -138,7 +138,7 @@ public class MediaHandlerGeneric implements MirMedia public String getPublishHost() { - return MirConfig.getProp("Producer.Media.Host"); + return StringUtil.removeSlash(MirConfig.getProp("Producer.Media.Host")); } public String getTinyIconName() diff --git a/source/mircoders/media/MediaHandlerImages.java b/source/mircoders/media/MediaHandlerImages.java index 4b1fba67..974f0970 100755 --- a/source/mircoders/media/MediaHandlerImages.java +++ b/source/mircoders/media/MediaHandlerImages.java @@ -59,7 +59,7 @@ import mircoders.entity.EntityImages; * * @see mir.media.MirMedia * @author mh - * @version $Date: 2002/11/04 04:35:22 $ $Revision: 1.11 $ + * @version $Id: MediaHandlerImages.java,v 1.12 2002/11/27 08:57:32 mh Exp $ */ @@ -166,7 +166,7 @@ public abstract class MediaHandlerImages implements MirMedia public String getPublishHost() { - return MirConfig.getProp("Producer.Image.Host"); + return StringUtil.removeSlash(MirConfig.getProp("Producer.Image.Host")); } public String getTinyIconName() @@ -201,7 +201,7 @@ public abstract class MediaHandlerImages implements MirMedia public String getDescr(Entity mediaType) { - return ""; + return "image/jpeg"; } } diff --git a/source/mircoders/media/MediaHandlerImagesJpeg.java b/source/mircoders/media/MediaHandlerImagesJpeg.java index 74988556..bc34b477 100755 --- a/source/mircoders/media/MediaHandlerImagesJpeg.java +++ b/source/mircoders/media/MediaHandlerImagesJpeg.java @@ -32,15 +32,8 @@ package mircoders.media; -//import java.lang.*; -//import java.io.*; -//import java.util.*; -//import java.lang.reflect.*; - -//import freemarker.template.SimpleList; - import mir.media.*; -//import mir.misc.*; +import mir.entity.Entity; /** * This class handles saving, fetching creating representations @@ -51,8 +44,8 @@ import mir.media.*; * * @see mir.media.MirMedia * @see mircoders.media.MediaHandlerImages - * @author mh - * @version 24.09.2001 + * @author mh, mir-coders group + * @version $Id: MediaHandlerImagesJpeg.java,v 1.3 2002/11/27 08:57:32 mh Exp $ */ @@ -62,4 +55,9 @@ public class MediaHandlerImagesJpeg extends MediaHandlerImages implements MirMed return JPEG; } + public String getDescr(Entity mediaType) + { + return "image/jpeg"; + } + } diff --git a/source/mircoders/media/MediaHandlerImagesPng.java b/source/mircoders/media/MediaHandlerImagesPng.java index 8a124ae8..b2c87c1b 100755 --- a/source/mircoders/media/MediaHandlerImagesPng.java +++ b/source/mircoders/media/MediaHandlerImagesPng.java @@ -32,15 +32,8 @@ package mircoders.media; -//import java.lang.*; -//import java.io.*; -//import java.util.*; -//import java.lang.reflect.*; - -//import freemarker.template.SimpleList; - import mir.media.*; -//import mir.misc.*; +import mir.entity.Entity; /** * This class handles saving, fetching creating representations @@ -51,8 +44,8 @@ import mir.media.*; * * @see mir.media.MirMedia * @see mircoders.media.MediaHandlerImages - * @author mh - * @version 24.09.2001 + * @author mh ,mir-coders + * @version $Id: MediaHandlerImagesPng.java,v 1.3 2002/11/27 08:57:32 mh Exp $ */ @@ -62,4 +55,9 @@ public class MediaHandlerImagesPng extends MediaHandlerImages implements MirMedi return PNG; } + public String getDescr(Entity mediaType) + { + return "image/png"; + } + } diff --git a/source/mircoders/media/MediaHandlerRealAudio.java b/source/mircoders/media/MediaHandlerRealAudio.java index 5b16e4ad..bab016b4 100755 --- a/source/mircoders/media/MediaHandlerRealAudio.java +++ b/source/mircoders/media/MediaHandlerRealAudio.java @@ -118,7 +118,7 @@ public class MediaHandlerRealAudio extends MediaHandlerAudio implements public String getPublishHost() { - return MirConfig.getProp("Producer.RealMedia.Host"); + return StringUtil.removeSlash(MirConfig.getProp("Producer.RealMedia.Host")); } } diff --git a/source/mircoders/media/MediaHandlerRealVideo.java b/source/mircoders/media/MediaHandlerRealVideo.java index 47ece1fe..c2680797 100755 --- a/source/mircoders/media/MediaHandlerRealVideo.java +++ b/source/mircoders/media/MediaHandlerRealVideo.java @@ -52,7 +52,7 @@ import mir.storage.*; * @see mir.media.MediaHandlerGeneric * @see mir.media.MirMedia * @author john , mh - * @version 11.10.2001 + * @version $Id: MediaHandlerRealVideo.java,v 1.12 2002/11/27 08:57:32 mh Exp $ */ @@ -118,7 +118,7 @@ public class MediaHandlerRealVideo extends MediaHandlerVideo implements public String getPublishHost() { - return MirConfig.getProp("Producer.RealMedia.Host"); + return StringUtil.removeSlash(MirConfig.getProp("Producer.RealMedia.Host")); } } diff --git a/source/mircoders/servlet/ServletModuleImages.java b/source/mircoders/servlet/ServletModuleImages.java index 7044dbe6..910858c2 100755 --- a/source/mircoders/servlet/ServletModuleImages.java +++ b/source/mircoders/servlet/ServletModuleImages.java @@ -60,8 +60,8 @@ import mircoders.producer.*; * ServletModuleImages - * liefert HTML fuer Images * - * - * @author RK + * @version $Id: ServletModuleImages.java,v 1.23 2002/11/27 08:57:32 mh Exp $ + * @author RK, the mir-coders group */ public class ServletModuleImages extends ServletModuleUploadedMedia @@ -88,68 +88,5 @@ public class ServletModuleImages extends ServletModuleUploadedMedia } } - public void showimg(HttpServletRequest req, HttpServletResponse res) - throws ServletModuleException - { - String idParam = req.getParameter("id"); - if (idParam!=null && !idParam.equals("")) { - try { - EntityImages entImage =(EntityImages)mainModule.getById(idParam); - ServletContext ctx = - (ServletContext)MirConfig.getPropAsObject("ServletContext"); - String fName = entImage.getId()+"." - +entImage.getMediaType().getValue("name"); - res.setContentType(ctx.getMimeType(fName)); - ServletOutputStream out = res.getOutputStream(); // wichtig, dass vorher kein res.getwriter() gelaufen ist - - InputStream in = entImage.getImage(); - 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 showicon(HttpServletRequest req, HttpServletResponse res) - throws ServletModuleException - { - String idParam = req.getParameter("id"); - if (idParam!=null && !idParam.equals("")) { - try { - EntityImages entImage =(EntityImages)mainModule.getById(idParam); - ServletContext ctx = - (ServletContext)MirConfig.getPropAsObject("ServletContext"); - String fName = entImage.getId()+"." - +entImage.getMediaType().getValue("name"); - res.setContentType(ctx.getMimeType(fName)); - ServletOutputStream out = res.getOutputStream(); // wichtig, dass vorher kein res.getwriter() gelaufen ist - - InputStream in = entImage.getIcon(); - int read; - byte[] buf = new byte[8 * 1024]; - while((read = in.read(buf)) != -1) { - out.write(buf, 0, read); - } - in.close(); - //out.write(outbytes); - 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 throw new ServletModuleException("id nicht angeben."); - } } diff --git a/source/mircoders/servlet/ServletModuleUploadedMedia.java b/source/mircoders/servlet/ServletModuleUploadedMedia.java index 62430c0d..69a51e46 100755 --- a/source/mircoders/servlet/ServletModuleUploadedMedia.java +++ b/source/mircoders/servlet/ServletModuleUploadedMedia.java @@ -47,6 +47,7 @@ import mir.servlet.ServletModuleUserException; 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; @@ -55,8 +56,10 @@ import javax.servlet.http.HttpServletRequest; 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; @@ -65,8 +68,8 @@ import java.util.HashMap; * ServletModuleBilder - * liefert HTML fuer Bilder * - * - * @author RK + * @version $Id: ServletModuleUploadedMedia.java,v 1.11 2002/11/27 08:57:32 mh Exp $ + * @author RK, the mir-coders group */ public abstract class ServletModuleUploadedMedia @@ -291,6 +294,94 @@ 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 + } + } diff --git a/templates/admin/audio.template b/templates/admin/audio.template index 7a8ab723..6f4a526f 100755 --- a/templates/admin/audio.template +++ b/templates/admin/audio.template @@ -27,7 +27,8 @@ function openWin(url) { - + + ${lang("media.created")}: ${data.webdb_create} / ${lang("media.changed")} ${data.webdb_lastchange}
diff --git a/templates/admin/audiolist.template b/templates/admin/audiolist.template index 48269ed4..da922f5e 100755 --- a/templates/admin/audiolist.template +++ b/templates/admin/audiolist.template @@ -69,9 +69,10 @@ class="list1"class="list2" > -
+ + ${entry.title}  -
${entry.description}
+
${entry.description}
${data.mediafolderHashdata[entry.to_media_folder]["name"]}  ${entry.creator}    diff --git a/templates/admin/image.template b/templates/admin/image.template index aedb80d6..ebe936f4 100755 --- a/templates/admin/image.template +++ b/templates/admin/image.template @@ -42,8 +42,8 @@ function openWin(url) { - - + + ${lang("media.created")}: ${data.webdb_create} / ${lang("media.changed")} ${data.webdb_lastchange}
diff --git a/templates/admin/imagelist.template b/templates/admin/imagelist.template index 970ce947..90ba7f61 100755 --- a/templates/admin/imagelist.template +++ b/templates/admin/imagelist.template @@ -70,11 +70,11 @@ class="list1"class="list2" > - -
+ + ${entry.title}  -
${entry.description}
+
${entry.description}
${data.mediafolderHashdata[entry.to_media_folder]["name"]}  ${entry.creator}    diff --git a/templates/admin/media.template b/templates/admin/media.template index b3640569..d08b547d 100755 --- a/templates/admin/media.template +++ b/templates/admin/media.template @@ -27,7 +27,8 @@ function openWin(url) { - + + ${lang("media.created")}: ${data.webdb_create} / ${lang("media.changed")} ${data.webdb_lastchange}
diff --git a/templates/admin/medialist.template b/templates/admin/medialist.template index 2e3f7c85..75ec3409 100755 --- a/templates/admin/medialist.template +++ b/templates/admin/medialist.template @@ -67,11 +67,12 @@ - bgcolor="#dddddd" + class="list1"class="list2"> -
+ + ${entry.title}  -
${entry.description}
+
${entry.description}
${data.mediafolderHashdata[entry.to_media_folder]["name"]}  ${entry.creator}    diff --git a/templates/admin/video.template b/templates/admin/video.template index 45ba9bdb..62975a1b 100755 --- a/templates/admin/video.template +++ b/templates/admin/video.template @@ -27,7 +27,8 @@ function openWin(url) { - + + ${lang("media.created")}: ${data.webdb_create} / ${lang("media.changed")} ${data.webdb_lastchange}
diff --git a/templates/admin/videolist.template b/templates/admin/videolist.template index 009e98a6..b9c63693 100755 --- a/templates/admin/videolist.template +++ b/templates/admin/videolist.template @@ -69,9 +69,10 @@ class="list1"class="list1" > -
+ + ${entry.title}  -
${entry.description}
+
${entry.description}
${data.mediafolderHashdata[entry.to_media_folder]["name"]}  ${entry.creator}    -- 2.11.0