5

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

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

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

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

谢谢你。

4

1 回答 1

6

toDataURL生成一个 data-uri 而不是文件名,因此在这种情况下扩展名不适用。

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

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

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

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

imageLink.href = grid.toDataURL();
imageLink.download = 'myOtherFilename.png';
于 2013-12-07T18:11:28.890 回答