[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
This commit is contained in:
@@ -243,6 +243,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()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user