Tôi muốn người dùng có thể tải hình ảnh lên Google App Engine. Tôi có sau (Python):Google App Engine (Python) - Tải lên tệp (hình ảnh)
class ImageData(ndb.Model):
name = ndb.StringProperty(indexed=False)
image = ndb.BlobProperty()
Thông tin được gửi bởi người dùng sử dụng một hình thức (HTML):
<form name = "input" action = "/register" method = "post">
name: <input type = "text" name = "name">
image: <input type = "file" name = "image">
</form>
Đó là sau đó được xử lý bởi:
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()
Tuy nhiên, khi tôi cố tải lên hình ảnh, hãy nói "Book.png", tôi gặp lỗi: BadValueError: Expected str, got u'Book.png'
Bất kỳ ý tưởng gì đang xảy ra? Tôi đã làm việc với GAE trong một thời gian, nhưng đây là lần đầu tiên tôi phải sử dụng các đốm màu.
Tôi đã sử dụng liên kết này: https://developers.google.com/appengine/docs/python/images/usingimages sử dụng db chứ không phải ndb. Tôi cũng đã cố gắng lưu trữ các hình ảnh trong một biến đầu tiên như trong liên kết: storedInfo = self.request.get('image')
và sau đó lưu trữ nó: imagedata.image = ndb.Blob(storedInfo)
mà cũng mang lại cho tôi một lỗi: AttributeError: 'module' object has no attribute 'Blob'
Cảm ơn trước.
Các lỗi được thông báo rằng bạn' đang cố gắng thiết lập một đối tượng Unicode là giá trị của một blob, mà trong trường hợp này có vẻ là tên tập tin, chứ không phải là dữ liệu tập tin. o lấy dữ liệu thô dưới dạng đường trong webapp2, vì vậy chỉ cần đăng bài dưới dạng nhận xét) – geoffspear
lý do nào bạn không sử dụng api blobstore hơn kho dữ liệu? https://developers.google.com/appengine/docs/python/blobstore/#Python_Uploading_a_blob – Faisal
Cảm ơn bạn Wooble, nhưng bạn đề nghị tôi nên làm gì? Và Faisal, tôi không sử dụng nó bởi vì nó cần db (Tôi đang sử dụng ndb) và webapp (Tôi đang sử dụng webapp2). – Albraa