diff options
| author | Nicolas Martinelli <nim@odoo.com> | 2016-05-19 13:52:08 +0200 |
|---|---|---|
| committer | Nicolas Martinelli <nim@odoo.com> | 2016-05-19 13:52:08 +0200 |
| commit | 03c032ecb9061ca30bea59a86d7373517ff67f46 (patch) | |
| tree | 3e360261209f11640024a788e013c54332a99f39 | |
| parent | 1def9911df74c3df4d28b8a609d537cb156f0952 (diff) | |
[FIX] web: company logo file extension
The company logo file extension is always '.png', even if the logo is of
another type such as 'jpg' or 'gif'. This is not an issue for decent
browsers, but IE might not display the image under specific
circumstancies, e.g. in combination with nginx.
opw-676836
| -rw-r--r-- | addons/web/controllers/main.py | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index 4b7634da132..3cd15189496 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -4,6 +4,7 @@ import base64 import csv import functools import glob +import imghdr import itertools import jinja2 import logging @@ -1077,7 +1078,8 @@ class Binary(http.Controller): '/logo.png', ], type='http', auth="none", cors="*") def company_logo(self, dbname=None, **kw): - imgname = 'logo.png' + imgname = 'logo' + imgext = '.png' placeholder = functools.partial(get_resource_path, 'web', 'static', 'src', 'img') uid = None if request.session.db: @@ -1090,7 +1092,7 @@ class Binary(http.Controller): uid = openerp.SUPERUSER_ID if not dbname: - response = http.send_file(placeholder(imgname)) + response = http.send_file(placeholder(imgname + imgext)) else: try: # create an empty registry @@ -1104,12 +1106,14 @@ class Binary(http.Controller): """, (uid,)) row = cr.fetchone() if row and row[0]: - image_data = StringIO(str(row[0]).decode('base64')) - response = http.send_file(image_data, filename=imgname, mtime=row[1]) + image_base64 = str(row[0]).decode('base64') + image_data = StringIO(image_base64) + imgext = '.' + (imghdr.what(None, h=image_base64) or 'png') + response = http.send_file(image_data, filename=imgname + imgext, mtime=row[1]) else: response = http.send_file(placeholder('nologo.png')) except Exception: - response = http.send_file(placeholder(imgname)) + response = http.send_file(placeholder(imgname + imgext)) return response |
