package controllers; import java.io.File; import java.util.List; import helpers.FileHelper; import models.Image; import play.Logger; import play.mvc.Controller; import play.mvc.Http; import play.mvc.Http.MultipartFormData.FilePart; import play.mvc.Result; public class Images extends Controller { public Result save() { final Http.MultipartFormData body = request().body().asMultipartFormData(); final FilePart picture = body.getFile("file"); if (picture != null) { String fileName = picture.getFilename(); String contentType = picture.getContentType(); Logger.info("contentType: " + contentType); Image image = FileHelper.save(picture.getFilename(), picture.getFile(), contentType); if (image == null) { flash("error", "could not save the image!"); return badRequest(); } Logger.info("saving file: " + fileName + " to " + image.imagePath); return redirect(routes.Images.thumbnail(image.checksum)); } else { flash("error", "Missing file"); return badRequest(); } } public Result show(String checksum) { Image image = Image.Find.where().eq("checksum", checksum).findUnique(); if(image == null) { return notFound("image "+checksum+ " not found!"); } return ok(views.html.Images.show.render(image)); } public Result index() { List images = models.Image.Find.where().order("created DESC").findList(); return ok(views.html.Images.index.render(images)); } public Result thumbnail(String checksum) { models.Image image = models.Image.findOrCreate(checksum); File imageFile = new File(image.thumbnailPath); if (image == null || !imageFile.exists()) { return notFound("thumbnail with checksum " + checksum + " could not be found!"); } return ok(imageFile); } public Result sobel(String checksum) { models.Image image = models.Image.findOrCreate(checksum); File imageFile = new File(image.sobelImagePath); if (image == null || !imageFile.exists()) { return notFound("sobel with checksum " + checksum + " could not be found!"); } return ok(imageFile); } public Result reference(String checksum) { models.Image image = models.Image.findOrCreate(checksum); File imageFile = new File(image.refImagePath); if (image == null || !imageFile.exists()) { return notFound("referenceImage with checksum " + checksum + " could not be found!"); } return ok(imageFile); } }