From c96d60ca58844ded197a3dd1c13965f05e4f9c55 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Tue, 6 Sep 2011 13:11:57 +0200 Subject: [PATCH] [FIX] image downloading, were not ported to werkzeug bzr revid: xmo@openerp.com-20110906111157-hyzm016cyjcm0kfn --- addons/web/controllers/main.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index 77d40733b83..c9e63fd77df 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -971,17 +971,19 @@ class Binary(openerpweb.Controller): @openerpweb.httprequest def image(self, req, model, id, field, **kw): - req.httpresponse.headers['Content-Type'] = 'image/png' Model = req.session.model(model) context = req.session.eval_context(req.context) + try: if not id: res = Model.default_get([field], context).get(field, '') else: res = Model.read([int(id)], [field], context)[0].get(field, '') - return base64.decodestring(res) + image_data = base64.decodestring(res) except: # TODO: what's the exception here? - return self.placeholder(req) + image_data = self.placeholder(req) + return req.make_response(image_data, [ + ('Content-Type', 'image/png'), ('Content-Length', len(image_data))]) def placeholder(self, req): return open(os.path.join(req.addons_path, 'web', 'static', 'src', 'img', 'placeholder.png'), 'rb').read()