我希望用户能够将图像上传到 Google App Engine。我有以下(Python):
class ImageData(ndb.Model):
name = ndb.StringProperty(indexed=False)
image = ndb.BlobProperty()
信息由用户使用表单 (HTML) 提交:
<form name = "input" action = "/register" method = "post">
name: <input type = "text" name = "name">
image: <input type = "file" name = "image">
</form>
然后通过以下方式处理:
class AddProduct(webapp2.RequestHandler):
def post(self):
imagedata = ImageData(parent=image_key(image_name))
imagedata.name = self.request.get('name')
imagedata.image = self.request.get('image')
imagedata.put()
但是,当我尝试上传图像时,可以说“Book.png”,我收到错误:
BadValueError: Expected str, got u'Book.png'
知道发生了什么吗?我使用 GAE 已经有一段时间了,但这是我第一次不得不使用 blob。
我使用了这个链接:https ://developers.google.com/appengine/docs/python/images/usingimages
,它使用 db,而不是 ndb。我还尝试先将图像存储在变量中,如链接中:
storedInfo = self.request.get('image')
然后存储它:
imagedata.image = ndb.Blob(storedInfo)
这也给了我一个错误:
AttributeError: 'module' object has no attribute 'Blob'
提前致谢。