尝试在Chrome中下载内嵌图片时,文件大小是多少?

时间:2017-11-17 14:32:52

标签: javascript html html5 google-chrome browser

我在浏览器中生成GIF,因此我可以使用的唯一链接是内联数据URL。 (如data:image/gif;base64,...

我想允许用户下载他们创建的GIF。为了让它像点击链接一样简单,我使用an a[download]就像这样:

<a download="GIF" href="data:image/gif;base64,...">Download</a>

使用小文件,这将打开我的MacOS“另存为”对话框。有了这个GIF,它没有。点击链接后没有任何反应,只是Chrome图标变为如下所示:

chrome icon with empty download indicator

当我右键单击GIF并选择“将图像另存为”时,我可以保存它。这让我可以看到GIF高达3MB。

我已检查过以常规方式链接的大文件,a[download]链接工作正常。这似乎只是内联数据URL文件的问题。

是否有文件大小限制?

奖金问题:

  • 为什么会出现文件大小限制?
  • 有解决方法吗?

1 个答案:

答案 0 :(得分:0)

TL; DR:数据网址大小限制 2 MiB See this demo

-

这意味着文件大小略小于a base64-encoded image is about 37% larger than the original

另请注意,它是2 Mebibyte 限制,因此带有“i”的“2 MiB”。 As explained here,这意味着限制为2 * 2 ^ 20 = 2,097,152字节,或者熟悉的基数为10的兆字节的MB97,MB。

the demo所示,这可以转换为1.568 MB文件下载,但Chrome无法下载1.581 MB文件。

  • 为什么Chrome会这样做?不确定。好像它可能是一个错误。
  • 解决方法:不确定。您可以尝试使用URL.createObjectUrl作为@ roland-starke建议,或者可能在新标签页中打开数据网址