summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Martinelli <nim@odoo.com>2016-05-19 13:52:08 +0200
committerNicolas Martinelli <nim@odoo.com>2016-05-19 13:52:08 +0200
commit03c032ecb9061ca30bea59a86d7373517ff67f46 (patch)
tree3e360261209f11640024a788e013c54332a99f39
parent1def9911df74c3df4d28b8a609d537cb156f0952 (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.py14
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