Odoo 10 XMLRPC获取图片:含换行的Base64字符串如何在<img>标签显示?
解决Odoo 10 XMLRPC获取图片时Base64字符串换行的显示问题
没错,必须先移除这些换行符才能在HTML的<img>标签里正常显示图片。原因很简单:HTML的data URI规范不允许Base64编码字符串中包含换行符,浏览器解析时会把这些换行当成无效字符,直接导致图片加载失败。
具体处理步骤:
- 清理Base64字符串:拿到
sub_record['image']后,先移除所有换行符(包括\n和\r,兼容不同系统的换行格式)。 - 构建有效的data URI:把清理后的Base64字符串拼接到
data:image/[格式];base64,前缀后面,格式要对应图片实际类型(比如PNG用image/png,JPEG用image/jpeg)。
示例代码(Python):
# 从Odoo XMLRPC获取的带换行的原始Base64字符串 raw_base64 = sub_record['image'] # 移除所有换行符和回车符 clean_base64 = raw_base64.replace('\n', '').replace('\r', '') # 构建img标签的src属性(假设图片是PNG格式,可按需调整) img_src = f"data:image/png;base64,{clean_base64}"
在HTML中使用:
<!-- 直接引用处理后的src值 --> <img src="{img_src}" alt="Odoo记录图片" />
额外注意事项:
- 确认MIME类型:Odoo的
image字段可能存储不同格式的图片,你可以根据实际情况调整data URI里的类型,比如如果是JPG就改成image/jpeg。 - 容错处理:如果
sub_record['image']为空或者无效,建议添加判断逻辑,比如显示一张默认占位图,避免页面出现破损的图标。
内容的提问来源于stack exchange,提问作者M.E.
相关产品推荐
相关产品推荐

