diff --git a/.classpath b/.classpath index e5c540b..95dd725 100644 --- a/.classpath +++ b/.classpath @@ -7,7 +7,7 @@ - + diff --git a/WebContent/media.jsp b/WebContent/media.jsp index 594f658..06c17d0 100644 --- a/WebContent/media.jsp +++ b/WebContent/media.jsp @@ -89,7 +89,7 @@ <%if( media instanceof Video ){ %> <%} else{ %> - + <%=media.getTitle()%> <%} %> diff --git a/src/zall/ZalleryContent.java b/src/zall/ZalleryContent.java index b290b5e..c444c2c 100644 --- a/src/zall/ZalleryContent.java +++ b/src/zall/ZalleryContent.java @@ -45,6 +45,8 @@ public class ZalleryContent extends HttpServlet{ file = media.getFile( Media.Size.SMALL ); else if( size.equalsIgnoreCase( "medium" ) ) file = media.getFile( Media.Size.MEDIUM ); + else if( size.equalsIgnoreCase( "large" ) ) + file = media.getFile( Media.Size.LARGE ); else file = media.getFile( Media.Size.ORIGINAL ); diff --git a/src/zall/bean/Folder.java b/src/zall/bean/Folder.java index 084b4f5..cbf47dc 100644 --- a/src/zall/bean/Folder.java +++ b/src/zall/bean/Folder.java @@ -149,25 +149,26 @@ public class Folder extends DBBean{ // Zallery not initialized. while( Zallery.DATA_PATH.isEmpty() ){ logger.warning("Zallery not initialized or DATA_PATH not set!"); - try{Thread.sleep(100);}catch(Exception e){} + return null; } if( user == null || filename == null ) return null; StringBuilder tmp = new StringBuilder(); + + // Get the Root path of the given size tmp.append( Zallery.DATA_PATH ); if( tmp.charAt(tmp.length()-1) != File.separatorChar ) - tmp.append( File.separatorChar ); - + tmp.append( File.separatorChar ); tmp.append( size.toString() ); - //tmp.append( File.separatorChar ); - //tmp.append( user.getId() ); if( path.charAt(0) != '/' ) tmp.append( File.separatorChar ); + // Add UserID and this folders path String tmp_path = path.replaceAll("\\{NAME\\}", ""+user.getId()); tmp_path = tmp_path.replaceAll("/", Matcher.quoteReplacement(File.separator)); tmp.append( tmp_path ); + // check if folder exists or else create it File folder = new File(tmp.toString()); if( !folder.exists() ) @@ -175,10 +176,12 @@ public class Folder extends DBBean{ logger.warning("Unable to create new folders: '"+folder+"'"); throw new RuntimeException("Unable to create new folders: '"+folder+"'"); } + // Add the filename if( tmp.charAt(tmp.length()-1) != File.separatorChar ) tmp.append( File.separatorChar ); tmp.append(filename); + logger.finest( "File path: "+tmp.toString() ); return new File(tmp.toString()); } diff --git a/src/zall/bean/Image.java b/src/zall/bean/Image.java index 34fa62c..a73c6ee 100644 --- a/src/zall/bean/Image.java +++ b/src/zall/bean/Image.java @@ -18,12 +18,14 @@ import zutil.db.bean.DBBean; import zutil.db.bean.DBBeanSQLResultHandler; import zutil.db.bean.DBBean.*; import zutil.image.ImageUtil; +import zutil.io.file.FileUtil; import zutil.log.LogUtil; @DBTable(value="Image", superBean=true) public class Image extends Media{ private static final Logger logger = LogUtil.getLogger(); public static final String type = "image"; + public static final String IMAGE_FORMAT = "jpg"; @DBLinkTable(table="Comments", beanClass=Comment.class, idColumn="image") private LinkedList comments; @@ -60,7 +62,7 @@ public class Image extends Media{ throw new Exception("Folder not set for image!"); // Generate unique filename filename = genFileName( item.getName() ); - filename += ".png"; + filename += "."+FileUtil.getFileExtension( item.getName() ); File file = folder.getFile( filename, Size.ORIGINAL ); // Move uploaded file @@ -78,7 +80,7 @@ public class Image extends Media{ case ORIGINAL: return folder.getFile( filename, Size.ORIGINAL ); default: - File file = folder.getFile( filename, size ); + File file = folder.getFile( FileUtil.changeExtension(filename, IMAGE_FORMAT), size ); File orgFile = folder.getFile( filename, Size.ORIGINAL ); if( !file.exists() ){ if(orgFile.exists() && orgFile.canRead() ){ @@ -92,8 +94,13 @@ public class Image extends Media{ case MEDIUM: image = ImageUtil.scale(original, 500, 375, true); break; + case LARGE: + image = ImageUtil.scale(original, 1200, 800, true); + break; + default: + break; } - ImageIO.write(image, "png", file); + ImageIO.write(image, IMAGE_FORMAT, file); } else if( !orgFile.exists() ) logger.severe("Original image file missing: \""+file.getAbsolutePath()+"\""); diff --git a/src/zall/bean/Media.java b/src/zall/bean/Media.java index e83cb8f..dad5b2c 100644 --- a/src/zall/bean/Media.java +++ b/src/zall/bean/Media.java @@ -21,7 +21,7 @@ public abstract class Media extends DBBean implements Comparable{ private static final Logger logger = LogUtil.getLogger(); public static enum Size{ - ORIGINAL, MEDIUM, SMALL + ORIGINAL, LARGE, MEDIUM, SMALL } protected Folder folder; diff --git a/src/zall/bean/Video.java b/src/zall/bean/Video.java index a4de3cf..716da1e 100644 --- a/src/zall/bean/Video.java +++ b/src/zall/bean/Video.java @@ -19,6 +19,7 @@ import zutil.io.file.FileUtil; @DBTable(value="Video", superBean = true) public class Video extends Media{ public static final String type = "video"; + public static final String VIDEO_FORMAT = "mp4"; /** The progress of a transcoding in %, 0 if there is no transcoding running **/ protected transient int transcodingProgress; @@ -99,9 +100,9 @@ public class Video extends Media{ public File getFile(Size size) throws IOException{ if( filename != null ){ if( size == Size.SMALL ) - return folder.getFile( FileUtil.changeExtension(filename,"png"), size ); + return folder.getFile( FileUtil.changeExtension(filename, Image.IMAGE_FORMAT), size ); else if( size == Size.MEDIUM ) - return folder.getFile( FileUtil.changeExtension(filename,"mp4"), size ); + return folder.getFile( FileUtil.changeExtension(filename, VIDEO_FORMAT), size ); else return folder.getFile( filename, size ); }