我的User
表中有一列称为img
。图像存储为Base64字符串。我尝试使用以下标签显示图片:
<img src="data:image/png;base64,${user.img}" alt="User image" />
虽然此功能适用于开信刀/预览模式,但Gmail似乎不支持此功能。
我现在正根据以下信息尝试将图像创建为嵌入式图像:https://stackoverflow.com/a/39710468/891359
我不了解的是如何正确显示图像。我尝试了以下组合:
在我的邮件中:
attachments.inline["user.png"] = {
:data => @user.img,
:mime_type => "image/png",
:encoding => "base64"
}
在我的模板中:
= image_tag attachments['user.png'].url
不幸的是,它在Gmail中显示为残破的图像图标。难道我做错了什么?
答案 0 :(得分:1)
好的,我自己解决了。诀窍是使用内容而不是数据。在我的Base64编码的字符串中也有一个必须删除的前缀。最终解决方案是更改邮件程序:
attachments.inline["user.png"] = {
:content => @user.img.remove('data:image/png;base64,'),
:mime_type => "image/png",
:encoding => "base64"
}