当用户保存为时如何控制Base64图像

5
我正在制作一个应用程序,在其中我想向用户展示一系列base64编码的图片。它们使用data-url显示。如果用户想要保存一张图片,只需右键单击并选择“另存为”(或将其拖入文件夹)即可。
有没有办法控制建议的文件名?现在Chrome只建议“下载”,甚至不将其识别为图像。有没有办法解决这个问题?
我只需要在Chrome中实现它。
感谢任何帮助。
2个回答

5
确保在数据URI中为图像设置正确的MIME类型。对我来说,在Chrome 17中这样做修复了文件扩展名。该文件被下载为“download.png”,并且能够正常打开。
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
9TXL0Y4OHwAAAABJRU5ErkJggg=="/>

然而,如果你确实需要对文件名有完全控制权,可以利用 HTML5 的 "download" 属性来设置文件名,并创建一个包含图像数据的 Blob 对象,该对象将被用于下载。
在这里查看演示:http://updates.html5rocks.com/2011/08/Downloading-resources-in-HTML5-a-download 更多信息请阅读:http://dev.w3.org/2009/dap/file-system/file-writer.html

谢谢,这正是我需要的!你说得对,我漏掉了datauri中的mime类型。同时,用data uri作为href和文件名作为download属性来包装图像。这样用户可以通过点击图像下载它们。尽管无法在拖动图像到桌面时选择文件名,但这对我很有用。再次感谢。 - JPuge

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接