Java 验证上载的文件是否为App Engine上的图像
我正在按照App Engine Images API文档中的概述进行图像上载,使用getServingUrl()生成上载url,然后将请求转发给我自己的处理程序。我想知道是否有一种方法可以验证上传的blob实际上是一个图像,或者我是否必须读取字节并使用它来确定文件类型。在Python中,您可以使用images API对blob数据执行简单的转换(调整大小),如果blob不是图像,则会引发NotImageError。Java中可能有一个等价物。在Python中,您可以使用images API对blob数据执行简单的转换(调整大小),如果blob不是图像,则会引发NotImageError。Java中很可能有一个等价物。大多数图像文件的字节中都有一个魔术数字或签名,很容易找到,而且读取速度可能比尝试解码整个图像快(即尝试使用调整大小操作;因为这可能会在非图像上快速失败,但如果是图像,则实际会执行此操作) 我猜想,你真正想支持的图像类型只有有限数量;以下是维基百科上的一些魔术数字示例:Java 验证上载的文件是否为App Engine上的图像,java,google-app-engine,Java,Google App Engine,我正在按照App Engine Images API文档中的概述进行图像上载,使用getServingUrl()生成上载url,然后将请求转发给我自己的处理程序。我想知道是否有一种方法可以验证上传的blob实际上是一个图像,或者我是否必须读取字节并使用它来确定文件类型。在Python中,您可以使用images API对blob数据执行简单的转换(调整大小),如果blob不是图像,则会引发NotImageError。Java中可能有一个等价物。在Python中,您可以使用images API对bl
大多数图像文件的字节中都有一个神奇的数字或签名,很容易找到,并且可能比尝试解码整个图像更快读取(即尝试使用调整大小操作;因为这可能会在非图像上快速失败,但如果是图像,则实际会执行此操作) 我猜想,你真正想支持的图像类型只有有限数量;以下是维基百科上的一些魔术数字示例:
+1回答得很好。在Java中,幻数数据可以通过新的BlobstoreInputStream(BlobKey-BlobKey)读取。读取(字节[]b,int off,int len)+1个很好的答案。在Java中,幻数数据可以通过
new BlobstoreInputStream(BlobKey-BlobKey)读取。读取(字节[]b,int off,int len)