【问题标题】:Validate that a uploaded file is an image on App Engine验证上传的文件是 App Engine 上的图片
【发布时间】:2012-02-24 17:24:23
【问题描述】:

我正在按照 App Engine 图片 API 文档中的说明进行图片上传,使用 getServingUrl() 生成上传网址,然后将请求转发给我自己的处理程序。我想知道是否有办法验证上传的 blob 实际上是图像,还是我必须读取字节并使用它来确定文件类型。

【问题讨论】:

    标签: java google-app-engine


    【解决方案1】:

    大多数图像文件在字节中都有一个很容易找到的幻数或签名,并且可能比尝试解码整个图像更快(即尝试使用调整大小操作;因为这可能会在 NOT 上快速失败一个图像,但如果它是一个图像,它实际上会执行操作)。

    我怀疑您真正想要支持的图像类型数量有限;以下是维基百科上的一些幻数示例:

    http://en.wikipedia.org/wiki/Magic_number_%28programming%29#Magic_numbers_in_files

    【讨论】:

    • +1 很好的答案。在 Java 中,new BlobstoreInputStream(BlobKey blobKey).read(byte[] b, int off, int len) 可以读取幻数数据
    【解决方案2】:

    在 Python 中,您可以使用图像 API 对 blob 数据执行简单的转换(调整大小),如果 blob 不是图像,则会引发 NotImageError。 Java 中可能有一个等价物。

    【讨论】:

      猜你喜欢
      • 2013-08-25
      • 1970-01-01
      • 2015-02-07
      • 2013-09-14
      • 2017-03-26
      • 2018-07-19
      • 2013-04-07
      • 2012-09-05
      • 2013-07-13
      相关资源
      最近更新 更多