X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2Fmir%2Fmedia%2FMediaHandlerGeneric.java;h=a466a9880d58e40c7e2bce01d5f80c868534e95d;hb=8bfa50e64be577a93d0d160b8d710dcc97114627;hp=52ff97bde19c8b8d05b0378bd235da948e6961e1;hpb=1d5b9c0eadc8081b1ee16de60e3e13fbf6e354ab;p=mir.git diff --git a/source/mir/media/MediaHandlerGeneric.java b/source/mir/media/MediaHandlerGeneric.java index 52ff97bd..a466a988 100755 --- a/source/mir/media/MediaHandlerGeneric.java +++ b/source/mir/media/MediaHandlerGeneric.java @@ -35,10 +35,12 @@ import mir.storage.*; public class MediaHandlerGeneric implements MirMedia { - private String imageHost = MirConfig.getProp("Producer.Image.Host"); - private static String imageRoot = MirConfig.getProp("Producer.ImageRoot"); - private Logfile theLog = Logfile.getInstance(MirConfig.getProp("Home")+"log/media.log"); - public boolean set (byte[] uploadedData, Entity ent, Entity mediaTypeEnt ) { + protected String imageHost = MirConfig.getProp("Producer.Image.Host"); + protected String imageRoot = MirConfig.getProp("Producer.ImageRoot"); + protected Logfile theLog = Logfile.getInstance(MirConfig.getProp("Home")+"log/media.log"); + public boolean set (byte[] uploadedData, Entity ent, Entity mediaTypeEnt ) + throws MirMediaException { + String ext = mediaTypeEnt.getValue("name"); String dir = MirConfig.getProp("Producer.Media.Path"); String mediaHost = MirConfig.getProp("Producer.Media.Host"); @@ -46,40 +48,42 @@ public class MediaHandlerGeneric implements MirMedia String date = ent.getValue("date"); String datePath = StringUtil.webdbDate2path(date); Integer size = new Integer(uploadedData.length); - if(FileUtil.write(dir+"/"+datePath+"/"+mediaFname, uploadedData)) { - //if(FileUtil.write(dir+"/"+mediaFname, uploadedData)) { + try { + FileUtil.write(dir+"/"+datePath+"/"+mediaFname, uploadedData); + //if(FileUtil.write(dir+"/"+mediaFname, uploadedData)) { //were done with the data, dereference. uploadedData=null; - try { - ent.setValueForProperty("is_produced", "1"); - ent.setValueForProperty("icon_is_produced", "1"); - ent.setValueForProperty("publish_path",datePath+"/"+mediaFname); - //ent.setValueForProperty("publish_path", mediaFname); - ent.setValueForProperty("publish_server", mediaHost); - ent.setValueForProperty("size", size.toString()); - ent.update(); - } catch (StorageObjectException e) { - theLog.printError("StorageObjectException: "+e.toString()); - return false; - } - } else { - theLog.printError("could not write FILE!"); - return false; + ent.setValueForProperty("is_produced", "1"); + ent.setValueForProperty("icon_is_produced", "1"); + ent.setValueForProperty("publish_path",datePath+"/"+mediaFname); + //ent.setValueForProperty("publish_path", mediaFname); + ent.setValueForProperty("publish_server", mediaHost); + ent.setValueForProperty("size", size.toString()); + ent.update(); + } catch (Exception e) { + theLog.printError(e.toString()); + throw new MirMediaException(e.toString()); } return true; } //a class that will probably never get used.. - private byte[] getFile (String fileName) { + private byte[] getFile (String fileName) + throws MirMediaException { + long size = FileUtil.getSize(fileName); if (size < 0) return null; byte[] container = new byte[(int)size]; - if(!FileUtil.read(fileName, container)) - return null; + try { + FileUtil.read(fileName, container); + } catch (Exception e) { + theLog.printError(e.toString()); + throw new MirMediaException(e.toString()); + } return container; } @@ -89,8 +93,7 @@ public class MediaHandlerGeneric implements MirMedia } public byte[] getIcon (Entity ent) { - String name = "/path/to/some/generic/icon"; - return getFile(name); + return null; } public String getStoragePath() @@ -125,7 +128,10 @@ public class MediaHandlerGeneric implements MirMedia public String getURL(Entity ent, Entity mediaTypeEnt) { - int size = Integer.parseInt(ent.getValue("size"), 10)/1024; + String stringSize = ent.getValue("size"); + if (stringSize == null) + return null; + int size = Integer.parseInt(stringSize, 10)/1024; String title = ent.getValue("title")+ " - "+mediaTypeEnt.getValue("name")+" "+ size+" KB";