ユーザーが画像を 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 を使用してきましたが、ブロブを使用する必要があったのはこれが初めてです。
私はこのリンクを使用しました:
ndbではなくdbを使用するhttps://developers.google.com/appengine/docs/python/images/usingimages 。また、最初にリンクのように画像を変数に保存してから、保存しようとしました
storedInfo = self.request.get('image')
:
imagedata.image = ndb.Blob(storedInfo)
これもエラーになります:
AttributeError: 'module' object has no attribute 'Blob'
よろしくお願いします。