Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以在一个文件中包含html代码和所有图像?_Html_File_Jpeg - Fatal编程技术网

是否可以在一个文件中包含html代码和所有图像?

是否可以在一个文件中包含html代码和所有图像?,html,file,jpeg,Html,File,Jpeg,我想要一个带有javascript的html文件。然后我想在这个文件中有一些图像。我想将此html文件发送给我的朋友(通过电子邮件)。我想让他们看到我的html文件与图像,但我不想给他们发送所有文件与所有图像。最好只给他们发送一个文件 我也不希望在web服务器上有图像 我也不想向他们发送包含所有文件的归档文件(因为他们需要打开此归档文件) 我想做很多事还是可以做我想做的事 已添加 我不希望我的朋友在邮件客户端中看到html文件。我想发送一个文件作为附件。因此,他们可以保存它,然后用浏览器打开。根

我想要一个带有javascript的html文件。然后我想在这个文件中有一些图像。我想将此html文件发送给我的朋友(通过电子邮件)。我想让他们看到我的html文件与图像,但我不想给他们发送所有文件与所有图像。最好只给他们发送一个文件

我也不希望在web服务器上有图像

我也不想向他们发送包含所有文件的归档文件(因为他们需要打开此归档文件)

我想做很多事还是可以做我想做的事

已添加


我不希望我的朋友在邮件客户端中看到html文件。我想发送一个文件作为附件。因此,他们可以保存它,然后用浏览器打开。

根据邮件客户端是否支持它,理论上您可以使用,如下所示:

<img src="data:image/png;base64,
    iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABGdBTUEAALGP
    C/xhBQAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9YGARc5KB0XV+IA
    AAAddEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIFRoZSBHSU1Q72QlbgAAAF1J
    REFUGNO9zL0NglAAxPEfdLTs4BZM4DIO4C7OwQg2JoQ9LE1exdlYvBBeZ7jq
    ch9//q1uH4TLzw4d6+ErXMMcXuHWxId3KOETnnXXV6MJpcq2MLaI97CER3N0
    vr4MkhoXe0rZigAAAABJRU5ErkJggg==" alt="Red dot" />

同样,支持依赖于邮件客户端。有些人可能根本不支持它。有些可能会在X字节数之后截断。等等。据我所知,他们并不多。此外,我没有看到像这样在HTML中内联图像的其他方法。在获得广泛支持之前,最好的办法是将图像作为附件发送


更新根据OP的更新:大多数现代网络浏览器都支持它。上面提到的维基百科链接甚至详细提到了它们

以下web浏览器当前支持数据URI:

  • 基于壁虎的,如Firefox、XeroBank、Camino、Fennec和K-Meleon
  • Konqueror,通过KDE的KIO从机输入/输出系统
  • Opera(包括任天堂DSi或Wii等设备)
  • 基于WebKit的,如Safari(包括iPhone)、Android浏览器、Epiphany和Midori(WebKit是Konqueror的KHTML引擎的衍生产品,但Mac OS X不共享KIO架构,因此实现方式不同),以及基于WebKit/Chrome的,如Chrome和Iron
  • Internet Explorer 8:出于安全原因,微软将其支持限制在某些“不可导航”的内容上,包括担心数据URI中嵌入的JavaScript可能无法被脚本过滤器(如基于web的电子邮件客户端使用的脚本过滤器)解释。数据URI必须小于32 KiB

请注意,IE8会截断32KB之后的字符串。因此,只要图像没有那么大,就可以为IE8用户使用数据URI方案。IE7及更低版本不支持它。

我不知道有什么方法可以100%肯定地完成您所追求的目标

有没有办法放弃这些图像?也许是ascii表示?(类似这样的)

存档将是我所知道的唯一“单一文件”选项。

是的,有可能:

# HTML
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA................." />

# CSS
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA.................)
#HTML
#CSS
背景图像:url(数据:image/png;base64,ivborw0kggoaaaansuheugaaa…………)
文件源使用算法编码,该算法允许轻松地将二进制数据表示为普通文本


在维基百科上找到更多信息:。

您不能从邮件客户端执行javascript。您可以内联图像,但您将需要一个库,因为手工操作并不简单


你应该给他们发送一个链接。

在任何情况下,你都不应该发送正文为HTML的电子邮件。将图片作为MIME附件发送纯文本邮件,或者更好的是,将图片放到网站上(我听说Flickr很好;-)并发送URL


我要再说一遍,因为需要更经常地说:电子邮件必须是纯文本。为什么不将图像与相对路径链接,并将它们与html文件捆绑在一个文件夹中,然后将其存档并压缩(zip或tarball,取决于偏好)?

如果您只想发送一个文件,只需使用您最喜欢的压缩程序压缩即可。

我更喜欢纯文本电子邮件,并附上必要的图像:\我确实希望每封邮件发送图像。我只是不想把它们作为单独的文件发送。我想将它们全部发送到一个文件中。这不起作用。JavaScript无法在99%的邮件阅读器中执行。给他们发送一个链接。我建议PDFA测试这种方法的简单方法是使用IE并单击文件,另存为…,“Web存档,单个文件(*.mht)”还请注意,32KB base64编码字符串只能包含约25KB的实际原始图像数据。(也就是说,如果图像文件为25KB或更大,则其base64表示形式将超过32KB。)我不打算在电子邮件正文中发送html代码。我想发送一个html文件作为附件。@Zack你能解释一下为什么电子邮件永远不能以html格式发送吗?因为你可以对图像使用ASCII艺术,这就是为什么。@Carlos Fair问。简单的回答是,即使是现在(在最初的MIME和HTML规范发布18年后),你也不能指望除了纯文本之外的任何东西能够被交付。就我所见,现在常见的问题是中继或邮件列表被配置为假设HTML意味着垃圾邮件。见鬼,我仍然看到太多剥离附件的中继:-(如果客户端支持data:scheme…,而Internet Explorer 7和更低版本不支持,如果他们使用的是古老的软件,那么这是他们的问题,而不是我的问题。我知道作为一名开发人员,我有责任为这11%的用户提供适当的功能(根据ranking.pl)然而,从我所注意到的情况来看:大多数IE7用户并不关心某些东西是否不起作用,如果这是网站工作的成本,他们中的绝大多数人准备升级软件。所以,去IE7和更低级别的用户的吧,最终你可以自由地告诉他们,他们正在使用旧软件,升级到新版本将解决所有问题。