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{ %>
-
+
<%} %>
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 );
}