X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2Fmircoders%2Fservlet%2FServletModuleImages.java;h=7044dbe633e478c1787ebb50cdcef29710fdefac;hb=627becfe22637207a6a13f0538cb67bbe96704f4;hp=ef19a450fb1c0de39daa7449910afbd040fa390d;hpb=a0b490f47bc60e832dd3e096d4a6807447548c79;p=mir.git diff --git a/source/mircoders/servlet/ServletModuleImages.java b/source/mircoders/servlet/ServletModuleImages.java index ef19a450..7044dbe6 100755 --- a/source/mircoders/servlet/ServletModuleImages.java +++ b/source/mircoders/servlet/ServletModuleImages.java @@ -1,3 +1,34 @@ +/* + * Copyright (C) 2001, 2002 The Mir-coders group + * + * This file is part of Mir. + * + * Mir is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Mir is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Mir; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * In addition, as a special exception, The Mir-coders gives permission to link + * the code of this program with the com.oreilly.servlet library, any library + * licensed under the Apache Software License, The Sun (tm) Java Advanced + * Imaging library (JAI), The Sun JIMI library (or with modified versions of + * the above that use the same license as the above), and distribute linked + * combinations including the two. You must obey the GNU General Public + * License in all respects for all of the code used other than the above + * mentioned libraries. If you modify this file, you may extend this exception + * to your version of the file, but you are not obligated to do so. If you do + * not wish to do so, delete this exception statement from your version. + */ + package mircoders.servlet; import java.io.*; @@ -26,8 +57,8 @@ import mircoders.module.*; import mircoders.producer.*; /* - * ServletModuleBilder - - * liefert HTML fuer Bilder + * ServletModuleImages - + * liefert HTML fuer Images * * * @author RK @@ -44,10 +75,10 @@ public class ServletModuleImages extends ServletModuleUploadedMedia private ServletModuleImages() { - theLog = Logfile.getInstance(MirConfig.getProp("Home") + MirConfig.getProp("ServletModule.Bilder.Logfile")); - templateListString = MirConfig.getProp("ServletModule.Bilder.ListTemplate"); - templateObjektString = MirConfig.getProp("ServletModule.Bilder.ObjektTemplate"); - templateConfirmString = MirConfig.getProp("ServletModule.Bilder.ConfirmTemplate"); + theLog = Logfile.getInstance(MirConfig.getProp("Home") + MirConfig.getProp("ServletModule.Images.Logfile")); + templateListString = MirConfig.getProp("ServletModule.Images.ListTemplate"); + templateObjektString = MirConfig.getProp("ServletModule.Images.ObjektTemplate"); + templateConfirmString = MirConfig.getProp("ServletModule.Images.ConfirmTemplate"); try { mainModule = new ModuleImages(DatabaseImages.getInstance()); //dbRights = DatabaseRights.getInstance(); @@ -64,11 +95,20 @@ public class ServletModuleImages extends ServletModuleUploadedMedia if (idParam!=null && !idParam.equals("")) { try { EntityImages entImage =(EntityImages)mainModule.getById(idParam); - res.setContentType("image/jpeg"); // testweise + 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 - byte[] outbytes = entImage.getImage(); - out.write(outbytes); + 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(); } @@ -87,11 +127,21 @@ public class ServletModuleImages extends ServletModuleUploadedMedia if (idParam!=null && !idParam.equals("")) { try { EntityImages entImage =(EntityImages)mainModule.getById(idParam); - res.setContentType("image/jpeg"); // testweise + 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 - byte[] outbytes = entImage.getIcon(); - out.write(outbytes); + 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(); } @@ -101,7 +151,5 @@ public class ServletModuleImages extends ServletModuleUploadedMedia } else throw new ServletModuleException("id nicht angeben."); } - - }