将图像下载为数据时出错 url

Error with downloading image as data url

所以,我正在做一个 link 从数据 url(一个大的)下载图像:

<a download='fileName' href="data:image/png;base64,/9j/4WSsRX...">something</a>

但是,每当我尝试点击那个 link 时,我都会收到一条错误消息,告诉我一些网络问题。

我已经进行了 fiddle 测试,但是它很大(15mb 的文本)并且需要一些时间来加载:

https://jsfiddle.net/jjydp1ek/

由于jsfiddle加载困难,我在mediafire中添加了一个文件: http://www.mediafire.com/download/p85y1g442ne9v6m/new++7.html

测试的图像具有与 link 相同的数据 url 值,该图像是可见的,但是我看到在 [=41 上的新选项卡中打开图像的选项=] 不工作。

我在 ie 11 中用 canvas 做到了,但也失败了

问题:

是否有可能像现在这样与下载 link 一起使用?

下载文件url的数据有大小限制吗?

我如何才能让用户能够下载该图像?

此外,如果您认为文本中的任何错误无法理解,请在此提问或更正文本中的任何错误。

谢谢。

我有 70Mb 的宽带和强大的 PC,而那个 JS fiddle 甚至打不开。

我认为拥有 15MB 的编码字符串是不可行的,因为每次访问时都必须将其下载到页面上。我会尝试以下操作:

  • 优化图像,如果你have/want有Gulp构建系统,你可以合并gulp-imagemin。如果您想那样做,我认为 Grunt 有其他选择。
  • 将文件存储在服务器上,只需在路径中添加一个link,这是首选方案。

回答您的问题

上限:

Length limitations

Although Mozilla supports data URIs of essentially unlimited length, browsers are not required to support any particular maximum length of data. For example, the Opera 11 browser limits data URIs to around 65000 characters.

来源:data URIs - MDN

正在下载

以上关于在不降低质量的情况下尽可能小地优化图像的建议,如果这是一个问题。那就试试吧。如果没有,给用户一个link图片/显示在页面上不是问题。用户可以右键单击并保存。

备注

当我写完这个响应时,JSFiddle 超时了。