diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/ImageUploadController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/ImageUploadController.java index 9c4627dc9..cd65b6e63 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/ImageUploadController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/ImageUploadController.java @@ -283,8 +283,18 @@ public class ImageUploadController extends FreeMarkerHttpServlet { // Did they provide a file to upload? If not, show an error. FileItem fileItem; + Dimensions mainImageSize; try { fileItem = helper.validateImageFromRequest(vreq); + mainImageSize = helper.getMainImageSize(entity); + + if ((mainImageSize.height < THUMBNAIL_HEIGHT) + || (mainImageSize.width < THUMBNAIL_WIDTH)) { + throw new UserMistakeException( + "The uploaded image should be at least " + + THUMBNAIL_HEIGHT + " pixels high and " + + THUMBNAIL_WIDTH + " pixels wide."); + } } catch (UserMistakeException e) { String thumbUrl = getThumbnailUrl(entity); String message = e.getMessage(); @@ -305,8 +315,6 @@ public class ImageUploadController extends FreeMarkerHttpServlet { entity = getWebappDaoFactory().getIndividualDao().getIndividualByURI( entityUri); - Dimensions mainImageSize = helper.getMainImageSize(entity); - // Go to the cropping page. return showCropImagePage(vreq, entity, getMainImageUrl(entity), mainImageSize); @@ -636,6 +644,11 @@ public class ImageUploadController extends FreeMarkerHttpServlet { this.width = width; this.height = height; } + + @Override + public String toString() { + return "Dimensions[width=" + width + ", height=" + height + "]"; + } } private static interface ResponseValues { diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/ImageUploadHelper.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/ImageUploadHelper.java index 1e165ae91..6415d43cc 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/ImageUploadHelper.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/ImageUploadHelper.java @@ -407,14 +407,17 @@ public class ImageUploadHelper { InputStream stream = null; try { stream = fileStorage.getInputStream(uri, filename); - BufferedImage image = ImageIO.read(stream); - return new Dimensions(image.getWidth(), image.getHeight()); + BufferedImage i = ImageIO.read(stream); + Dimensions size = new Dimensions(i.getWidth(), i.getHeight()); + log.debug("main image size is " + size); + return size; } catch (FileNotFoundException e) { - log.warn("No main image file for '" + showUri(entity) + "'; name='" - + filename + "', bytestreamUri='" + uri + "'", e); + log.error( + "No main image file for '" + showUri(entity) + "'; name='" + + filename + "', bytestreamUri='" + uri + "'", e); return new Dimensions(0, 0); } catch (IOException e) { - log.warn( + log.error( "Can't read main image file for '" + showUri(entity) + "'; name='" + filename + "', bytestreamUri='" + uri + "'", e);