Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 验证上载的文件是否为App Engine上的图像_Java_Google App Engine - Fatal编程技术网

Java 验证上载的文件是否为App Engine上的图像

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

我正在按照App Engine Images API文档中的概述进行图像上载,使用getServingUrl()生成上载url,然后将请求转发给我自己的处理程序。我想知道是否有一种方法可以验证上传的blob实际上是一个图像,或者我是否必须读取字节并使用它来确定文件类型。

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

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

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

我猜想,你真正想支持的图像类型只有有限数量;以下是维基百科上的一些魔术数字示例:


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

我猜想,你真正想支持的图像类型只有有限数量;以下是维基百科上的一些魔术数字示例:


+1回答得很好。在Java中,幻数数据可以通过新的BlobstoreInputStream(BlobKey-BlobKey)读取。读取(字节[]b,int off,int len)+1个很好的答案。在Java中,幻数数据可以通过
new BlobstoreInputStream(BlobKey-BlobKey)读取。读取(字节[]b,int off,int len)