package code; import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; import java.io.OutputStream; import java.net.URI; import java.util.ArrayList; import java.util.List; import javax.imageio.ImageIO; import com.sun.net.httpserver.HttpExchange; import com.sun.net.httpserver.HttpHandler; public class ImageRes implements HttpHandler { @Override public void handle(HttpExchange exchange) throws IOException { String requestURI = exchange.getRequestURI().toASCIIString().replace("/secured/home/", "/"); String requestMethod = exchange.getRequestMethod(); if (Helper.compareText(requestMethod, "GET")) { BufferedImage image = getLocalImage(requestURI); if (image == null) Helper.pageNotFound(exchange); List<String> strlist = new ArrayList<>(); strlist.add("image/png"); OutputStream os = exchange.getResponseBody(); ByteArrayOutputStream baos = new ByteArrayOutputStream(); ImageIO.write(image, "png", baos); baos.flush(); byte[] imageInByte = baos.toByteArray(); exchange.getResponseHeaders().put("content-type", strlist); exchange.sendResponseHeaders(200, imageInByte.length); os.write(imageInByte); os.close(); } else { Helper.methodNotAllowed(exchange); } } private BufferedImage getLocalImage(String uri) { String page = Server.CLIENT_PATH + uri; try { File f = new File(page); BufferedImage image = ImageIO.read(f); return image; } catch (IOException e) { System.out.println("Error reading file '" + page + "'"); return null; } } }