diff options
| author | Romain Derie <rde@odoo.com> | 2021-02-09 11:56:07 +0000 |
|---|---|---|
| committer | Romain Derie <rde@odoo.com> | 2021-03-25 11:40:22 +0000 |
| commit | 4d529ad0d1b3e448fba7fb6cf54ed7991664f5aa (patch) | |
| tree | 97e029aa7e30897ededc966717443c9869384898 /addons/web_editor/controllers | |
| parent | 28ba416d078294e96897f68751ced8964f42c66f (diff) | |
[FIX] web_editor: prevent mismatch between mimetype and content type
Since the image util method `image_base64()` is converting BMP images to PNG
automatically[1], there would be a mismatch between the attachment content type
and the attachment mimetype.
- Content type: retrieve with `base64_to_image(data).format` -> return PNG as
the image data was converted from BMP to PNG
- Mimetype: set on `write()` and `create()` with `_check_contents()` which
call `mimetypes.guess_type(file_name)`.
BMP image `my_file_image.bmp` would have a mimetype set to BMP
The computed field `image_src` would return `False` since the image.mimetype
would be BMP, making the dialog picker not showing the image but loading
`http://localhost:8069/false` instead.
[1] https://github.com/odoo/odoo/blame/097f29d0f6a5b295c81fd074665dbd261eaf12fb/odoo/tools/image.py#L124
task-2345082
Coming from #65828
Closes #68326
X-original-commit: ef5b108b781df73342bb99342a1116fad86d3b58
Diffstat (limited to 'addons/web_editor/controllers')
| -rw-r--r-- | addons/web_editor/controllers/main.py | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/addons/web_editor/controllers/main.py b/addons/web_editor/controllers/main.py index b8f3b3eb36f..2cefa652706 100644 --- a/addons/web_editor/controllers/main.py +++ b/addons/web_editor/controllers/main.py @@ -242,6 +242,10 @@ class Web_Editor(http.Controller): def _attachment_create(self, name='', data=False, url=False, res_id=False, res_model='ir.ui.view'): """Create and return a new attachment.""" + if name.lower().endswith('.bmp'): + # Avoid mismatch between content type and mimetype, see commit msg + name = name[:-4] + if not name and url: name = url.split("/").pop() |
