google-app-engine – Google App Engine中的图片响应

我通过执行以下操作将用户的图像保存为BlobProperty:

user.image = urlfetch.fetch(image_url).content

然后我使用如下网址渲染该图像:

/image/user_id

图像必须保存,因为当我执行len(user.image)时,我得到了数千个数字.在本地实例上,图像呈现正常.在部署的应用程序上,我收到以下错误,当我转到图像网址时,浏览器中没有显示任何内容:

Traceback(最近一次调用最后一次):
运行文件“/base/python27_runtime/python27_dist/lib/python2.7/wsgiref/handlers.py”,第86行
self.finish_response()
文件“/base/python27_runtime/python27_dist/lib/python2.7/wsgiref/handlers.py”,第127行,在finish_response中
self.write(数据)
文件“/base/python27_runtime/python27_dist/lib/python2.7/wsgiref/handlers.py”,第202行,写入
assert type(data)是StringType,“write()参数必须是string”
AssertionError:write()参数必须是字符串

另外,这是为图像提供服务的处理程序:

class ImageHandler(webapp2.RequestHandler):
""" Returns image based on id. """
def get(self, *args, **kwargs):
    user = db.get(
        db.Key.from_path('User', models.User.get_key_name(kwargs.get('id'))))
    if user.image:
        self.response.headers['Content-Type'] = "image/jpeg"
        self.response.out.write(user.image)
    else:
        self.response.out.write("No image")

只是为了澄清我尝试将内容类型设置为jpeg和png.事情在本地服务器上运行正常.任何帮助,将不胜感激.谢谢!

最佳答案 为什么不将图像写入blobstore然后使用send_blob()机制?

http://code.google.com/appengine/docs/python/blobstore/overview.html#Serving_a_Blob

点赞