X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2FGetImagePage.java;fp=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2FGetImagePage.java;h=29556c9a42021d771948417840411c9a8d47cddb;hp=fdd72a8abda5e341c978fa4e233c3ad8cf1f08b5;hb=0df5e91852f737d760c5a9f54c5667309fbadcc2;hpb=356a84e5ec2bb0936b7d1cdc635f7f051788da6a diff --git a/src/main/java/net/pterodactylus/sone/web/GetImagePage.java b/src/main/java/net/pterodactylus/sone/web/GetImagePage.java index fdd72a8..29556c9 100644 --- a/src/main/java/net/pterodactylus/sone/web/GetImagePage.java +++ b/src/main/java/net/pterodactylus/sone/web/GetImagePage.java @@ -17,15 +17,19 @@ package net.pterodactylus.sone.web; +import java.io.IOException; + import net.pterodactylus.sone.data.TemporaryImage; -import net.pterodactylus.sone.web.page.Page; +import net.pterodactylus.sone.web.page.FreenetRequest; +import net.pterodactylus.util.web.Page; +import net.pterodactylus.util.web.Response; /** * Page that delivers a {@link TemporaryImage} to the browser. * * @author David ‘Bombe’ Roden */ -public class GetImagePage implements Page { +public class GetImagePage implements Page { /** The Sone web interface. */ private final WebInterface webInterface; @@ -52,13 +56,22 @@ public class GetImagePage implements Page { * {@inheritDoc} */ @Override - public Response handleRequest(Request request) { + public boolean isPrefixPage() { + return false; + } + + /** + * {@inheritDoc} + */ + @Override + public Response handleRequest(FreenetRequest request, Response response) throws IOException { String imageId = request.getHttpRequest().getParam("image"); TemporaryImage temporaryImage = webInterface.getCore().getTemporaryImage(imageId); if (temporaryImage == null) { - return new Response(404, "Not found.", "text/plain; charset=utf-8", ""); + return response.setStatusCode(404).setStatusText("Not found.").setContentType("text/html; charset=utf-8"); } - return new Response(200, "OK", temporaryImage.getMimeType(), temporaryImage.getImageData()).setHeader("Content-Disposition", "attachment; filename=" + temporaryImage.getId() + "." + temporaryImage.getMimeType().substring(temporaryImage.getMimeType().lastIndexOf("/") + 1)); + String contentType= temporaryImage.getMimeType(); + return response.setStatusCode(200).setStatusText("OK").setContentType(contentType).addHeader("Content-Disposition", "attachment; filename=" + temporaryImage.getId() + "." + contentType.substring(contentType.lastIndexOf('/') + 1)).write(temporaryImage.getImageData()); } }