Google app engine 上传图像时如何获取图像类型和大小?谷歌应用引擎

Google app engine 上传图像时如何获取图像类型和大小?谷歌应用引擎,google-app-engine,python-2.7,google-cloud-storage,Google App Engine,Python 2.7,Google Cloud Storage,我正在使用此代码将图像上载到云存储: class uploadImageTOCloudStorage(webapp2.RequestHandler): def post(self): image = self.request.get("file") gcs_file=gcs.open(GCS_BUCKET_NAME+'testImage.png', 'w') gcs_file.write(image.encod('utf-8'))

我正在使用此代码将图像上载到云存储:

class uploadImageTOCloudStorage(webapp2.RequestHandler):
    def post(self):
        image = self.request.get("file")
        gcs_file=gcs.open(GCS_BUCKET_NAME+'testImage.png', 'w')
        gcs_file.write(image.encod('utf-8'))
        gcs_file.close()

        self.response.write("succeed !")
并使用此表单发送图像:

<form action="http://myappId.appspot.com/test/uploadImage" method="post">
 <input type="file" name="file" value='file'><br>

<input type="submit" value="Submit">
</form
在将图像保存到云存储之前,如何检查图像的大小和类型


>

如果将enctype=multipart/form数据添加到表单元素中,则可以使用图像数据使用如下代码实例化图像对象:

请特别注意提取和拆分mime类型以检测有效图像格式的方式,以及我们在使用构造函数并传递原始图像数据后使用google.appengine.api.images类图像来提取维度的事实

import webapp2
import google.appengine.api.images as images

class Uploader(webapp2.RequestHandler):
    def post(self):
        img_stream = self.request.get ('file')
        mimetype = self.request.POST['file'].type
        img_format = mimetype.split('/')[1]

        if (img_format == 'jpeg' or 'jpg' or 'gif' or 'png' or 'bmp' or 'tiff' or 'ico' or 'webp'):
            imageObj = images.Image (img_stream)
            width = imageObj.width
            height = imageObj.height
            self.response.out.write ('<html><body>uploaded image is %s x %s [%s]</body></html>' % (width, height, img_format))
        else:
            self.response.out.write ('not valid format')

谢谢你的回答,可能是重复的,但是self.request.POST['file']和self.request.get'file'Ahh之间有什么不同,谢谢你指出这一点。我应该解释一下:如果您阅读webapp2.RequestHandler的规范,您将看到self.request对象有几种访问请求参数的方法。get将按名称从任何类型的请求中获取数据,但POST数组专门用于POST请求数据。此外,.get将作为字符串抓取,而。