我希望用戶能夠將圖像上傳到Google App Engine。我有以下(Python)的: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'
在此先感謝。
錯誤是告訴你,你」重新嘗試設置一個Unicode對象作爲blob的值,在這種情況下,它似乎是文件名,而不是文件數據本身(我不確定如何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