ユーザーがGoogle App Engineに画像をアップロードできるようにしたい。しかし、Google App Engine(Python) - ファイルをアップロードする(画像)
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()
:
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>
それまでに処理され、私は、次の(パイソン)を持っています画像をアップロードしようとすると「Book.png」と言うと、エラーが表示されます: BadValueError: Expected str, got u'Book.png'
何が起こっているか考えてみませんか?私はかなり長い間GAEで作業してきましたが、ブロブを使用するのは初めてです。
私はこのリンクを使用しました: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'
を。
エラーを持っている必要がありますことを語っている:
だけで
が置き換えますBlobの値としてUnicodeオブジェクトを設定しようとしています。この場合はファイルデータではなくファイル名であるように見えます(どのようにt o webapp2のstrとして生データを取得するので、コメントとして投稿するだけです) – geoffspear
データストアよりもblobstore APIを使用していない理由がありますか? https://developers.google.com/appengine/docs/python/blobstore/#Python_Uploading_a_blob – Faisal
Woobleさんありがとうございますが、私は何を提案しますか? ファイサル、db(私はndbを使用しています)とwebapp(私はwebapp2を使用しています)が必要なので、私はそれを使用していません。 – Albraa