所以,我正在做一个链接,从数据url(一个大的url)下载图像:
<a download='fileName' href="data:image/png;base64,/9j/4WSsRX...">something</a>
然而,每当我尝试点击该链接时,我都会收到一个错误,告诉我一些网络问题。
我做了一个小提琴测试,但它很大(15mb的文本),需要一段时间才能加载:
https://jsfiddle.net/jjydp1ek/
由于jsfiddle很难加载,我在mediafire中添加了一个文件:http://www.mediafire.com/download/p85y1g442ne9v6m/new++7.html
测试是一个与链接具有相同数据url值的图像,该图像是可见的,但我看到在chrome上的新选项卡中打开图像的选项不起作用。
我在ie 11中用画布做了这件事,也失败了
问题:
有没有可能让它像现在这样与下载链接一起工作?
下载文件的数据url是否有大小限制?
我该如何让用户能够下载该图像?
此外,在这里提问,如果你认为文本中的错误不可理解,也可以纠正。
谢谢。
我有一个70Mb的宽带和一台强大的PC,JS fiddle甚至不会打开。
我认为有一个15MB编码的字符串是不可行的,因为每次访问都必须下载到页面上。我会尝试以下方法:
- 优化图像,如果你有/想让gulp用于构建系统,你可以加入gulp-imagemin。我认为,如果你想走那条路,格兰特还有其他选择
- 将文件存储在服务器上,只需放置指向路径的链接,这是首选解决方案
回答您的问题
限制:
长度限制
尽管Mozilla基本上支持长度不受限制,浏览器不需要支持任何特定的数据的最大长度。例如,Opera 11浏览器限制数据URI到大约65000个字符。
来源:数据URI-MDN
下载
以上建议是在不损失质量的情况下尽可能小地优化图像。那就试试吧。如果没有,那么给用户一个图像链接/在页面上显示它就没有问题。用户可以右键单击并保存。
注意
当我写完这个回复时,JSFiddle超时了。