【问题标题】:Missing extension when saving image from canvas从画布保存图像时缺少扩展名
【发布时间】:2013-12-25 00:29:13
【问题描述】:

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

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

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

我的问题是如何将扩展名放在末尾?

谢谢。

【问题讨论】:

    标签: javascript image canvas base64 todataurl


    【解决方案1】:

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

    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';
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-20
    • 2016-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-11
    相关资源
    最近更新 更多