从画布保存图像时缺少扩展名

时间:2013-12-07 17:47:01

标签: javascript image canvas base64 todataurl

我使用此代码在Javascript中保存图像:

window.location.href = grid.toDataURL("image/png").replace("image/png", "image/octet-stream");

代码有效,但保存的文件没有任何扩展名,我必须手动重命名。

我的问题是如何将扩展程序放在最后?

谢谢。

1 个答案:

答案 0 :(得分:6)

toDataURL生成的数据不是文件名,因此在这种情况下扩展名不适用。

data-uri只是二进制内容的文本编码版本,某些浏览器可以将其读作文件 - 如果愿意,可以读取数据流。由于数据流没有任何文件名,因此无法附加。

您可以通过设置这样的锚标记来解决此问题:

<a id="imageLink" href="data-uri-here" download="myFilename.png">
    Click to download
</a>

在JavaScript中,您可以将这些属性设置为动态:

imageLink.href = grid.toDataURL();
imageLink.download = 'myOtherFilename.png';