java - 如何验证 Play Framework 1 中的图片上传?

标签 java image validation upload playframework

上传图片需要满足几个条件:

  • 尺寸不能超过 x 像素高度,y 像素宽度,
  • 磁盘上的大小不能超过 b 个字节
  • 必须是 PNGJPG 文件
  • 必须“调整大小”
  • 必须保存到磁盘(使用 play 的 Blob)

到目前为止,我几乎没有发现有关图像上传和/或检查 Play!Framework 的信息。 欢迎任何帮助!

谢谢!

最佳答案

在 PlayFramework 的源代码中搜索了一下之后,我偶然发现了 ImageIO已经在 Play 中使用的库。无法理解,为什么没有将如此简单的检查添加到核心库中......

这是我创建的检查部分:

  • 尺寸检查,
  • 类型检查,
  • 尺寸检查。

    package validators;
    
    import java.awt.image.BufferedImage;
    import java.io.IOException;
    
    import javax.imageio.ImageIO;
    
    import play.Logger;
    import play.data.validation.Check;
    import play.db.jpa.Blob;
    import play.i18n.Messages;
    
    public class ImageValidator extends Check {
    
      public final static int MAX_SIZE = 4048;
      public final static int MAX_HEIGHT = 1920;
    
      @Override
      public boolean isSatisfied(Object parent, Object image) {
    
        if (!(image instanceof Blob)) {
            return false;
        }
    
        if (!((Blob) image).type().equals("image/jpeg") && !((Blob) image).type().equals("image/png")) {
            return false;
        }
    
        // size check
        if (((Blob) image).getFile().getLength() > MAX_SIZE) {
            return false;
        }
    
    
        try {
            BufferedImage source = ImageIO.read(((Blob) image).getFile());
            int width = source.getWidth();
            int height = source.getHeight();
    
            if (width > MAX_WIDTH || height > MAX_HEIGHT) {
                return false;
            }
        } catch (IOException exption) {
            return false;
        }
    
    
        return true;
        }
    }
    

关于java - 如何验证 Play Framework 1 中的图片上传?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6644356/

相关文章:

Java 抽象/扩展问题

image - 水平和垂直一维高斯滤波器

android - 拍照时出现 FileUriExposedException

javascript - 使用 ng-messages 对生成的字段进行表单验证

css - 在 Adob​​e Flex Builder (Eclipse) 中调整 CSS 验证

java - java用户输入异常处理

java - 测试基于注解的 RequestInterceptor

java - 意外的排序列表

css - 对图像使用媒体查询

asp.net - 一个按钮可以验证更多验证组吗?