X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2FUploadImagePage.java;h=467ceda0b0304fdaffb283431f498676ec003433;hp=b5e8d5111936dac79115c92ce0e3dbe9b3df7c28;hb=9acbc5bdec4ccb752e0856a501568b0bb6161579;hpb=4b9052a10d998339deec2f9b567d2913a9442f8b diff --git a/src/main/java/net/pterodactylus/sone/web/UploadImagePage.java b/src/main/java/net/pterodactylus/sone/web/UploadImagePage.java index b5e8d51..467ceda 100644 --- a/src/main/java/net/pterodactylus/sone/web/UploadImagePage.java +++ b/src/main/java/net/pterodactylus/sone/web/UploadImagePage.java @@ -1,5 +1,5 @@ /* - * Sone - UploadImagePage.java - Copyright © 2011–2013 David Roden + * Sone - UploadImagePage.java - Copyright © 2011–2016 David Roden * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -17,6 +17,9 @@ package net.pterodactylus.sone.web; +import static com.google.common.base.Optional.fromNullable; +import static java.util.logging.Logger.getLogger; + import java.awt.Image; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; @@ -31,13 +34,12 @@ import javax.imageio.ImageReader; import javax.imageio.stream.ImageInputStream; import net.pterodactylus.sone.data.Album; -import net.pterodactylus.sone.data.ImageImpl.ImageTitleMustNotBeEmpty; +import net.pterodactylus.sone.data.Image.Modifier.ImageTitleMustNotBeEmpty; import net.pterodactylus.sone.data.Sone; import net.pterodactylus.sone.data.TemporaryImage; import net.pterodactylus.sone.text.TextFilter; import net.pterodactylus.sone.web.page.FreenetRequest; import net.pterodactylus.util.io.Closer; -import net.pterodactylus.util.logging.Logging; import net.pterodactylus.util.template.Template; import net.pterodactylus.util.template.TemplateContext; import net.pterodactylus.util.web.Method; @@ -54,8 +56,8 @@ import freenet.support.api.HTTPUploadedFile; */ public class UploadImagePage extends SoneTemplatePage { - /** The logger. */ - private static final Logger logger = Logging.getLogger(UploadImagePage.class); + private static final Logger logger = getLogger(UploadImagePage.class.getName()); + private static final String UNKNOWN_MIME_TYPE = "application/octet-stream"; /** * Creates a new “upload image” page. @@ -77,8 +79,7 @@ public class UploadImagePage extends SoneTemplatePage { * {@inheritDoc} */ @Override - protected void processTemplate(FreenetRequest request, TemplateContext templateContext) throws RedirectException { - super.processTemplate(request, templateContext); + protected void handleRequest(FreenetRequest request, TemplateContext templateContext) throws RedirectException { if (request.getMethod() == Method.POST) { Sone currentSone = getCurrentSone(request.getToadletContext()); String parentId = request.getHttpRequest().getPartAsStringFailsafe("parent", 36); @@ -89,7 +90,10 @@ public class UploadImagePage extends SoneTemplatePage { if (!currentSone.equals(parent.getSone())) { throw new RedirectException("noPermission.html"); } - String name = request.getHttpRequest().getPartAsStringFailsafe("title", 200); + String name = request.getHttpRequest().getPartAsStringFailsafe("title", 200).trim(); + if (name.length() == 0) { + throw new RedirectException("emptyImageTitle.html"); + } String description = request.getHttpRequest().getPartAsStringFailsafe("description", 4000); HTTPUploadedFile uploadedFile = request.getHttpRequest().getUploadedFile("image"); Bucket fileBucket = uploadedFile.getData(); @@ -153,12 +157,13 @@ public class UploadImagePage extends SoneTemplatePage { ImageInputStream imageInputStream = ImageIO.createImageInputStream(imageDataInputStream); Iterator imageReaders = ImageIO.getImageReaders(imageInputStream); if (imageReaders.hasNext()) { - return imageReaders.next().getOriginatingProvider().getMIMETypes()[0]; + return fromNullable(imageReaders.next().getOriginatingProvider().getMIMETypes()) + .or(new String[] { UNKNOWN_MIME_TYPE })[0]; } } catch (IOException ioe1) { logger.log(Level.FINE, "Could not detect MIME type for image.", ioe1); } - return "application/octet-stream"; + return UNKNOWN_MIME_TYPE; } }