我需要创建一个存储在磁盘上的HTML文件;稍后,用户会将此文件附加到电子邮件中,并将其发送给用户,该用户将单击该文件以在其浏览器中显示该文件。我的客户要求将图像文件直接嵌入到保存的html文件中,而不是作为在浏览器中打开文档时加载的URL的链接。
我已经看过(并试过)过这样的base64代码:
<IMG SRC="data:image/gif;base64,
但是我的图像是150K或更大,至少在IE8中,它们太大而无法正常显示。
是否有另一种方法可以将大图像嵌入(不链接)到HTML文档中?请记住,我没有运行与浏览器交互的程序。
答案 0 :(得分:2)
IE 8的数据uri限制为32k(http://en.wikipedia.org/wiki/Data_URI_scheme),这就是为什么事情在那里失败的原因。此外,版本的I.E.低于8将不支持此功能。
我知道,没有办法解决这个问题。但是,您可以分解图像并对其中的不同部分进行编码。由于听起来这个内容在任何方面都不是动态的,这可能不会太难。否则,您可能只想使用CSS hack为IE8及更低版本的服务器提供不同的样式,或者尝试从服务器为这些浏览器加载图像。
答案 1 :(得分:1)
感谢所有人,但艾伯特的帖子给了我答案,但有点间接。我最初创建我的html文档作为电子邮件,并直接在电子邮件中嵌入图像,混合htm&amp;哑剧。我需要做的就是将文档的扩展名从.htm更改为.mht。
我的文档代码的相关部分是:
<img border=3 width="360" height="360" src="cid:001@mime.mail"></table></div></body></html>
--_=_Boundary_001_VXUXGWO1.FBLEINFI
Content-Type: application/octet-stream; name="1.jpg"
Content-Disposition: attachment; filename="1.jpg"
Content-ID: <001@mime.mail>
Content-Transfer-Encoding: base64
Content-Description: 1.jpg
/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA...
请注意,src =“cid:001@mime.mail”对应于实际图像数据开始处上方的Content-ID标记。