FileSaver.js 在没有原生支持 saveAs() 的浏览器上实现了 saveAs() 接口。有一个 FileSaver.js 示例,演示如何保存各种媒体类型。
FileSaver.js 是在客户端保存文件的解决方案,非常适合需要生成文件,或者保存不应该发送到外部服务器的敏感信息的 web App。
你还在寻找 canvas.toBlob() 来保存画布?canvas-toBlob.js 可以跨浏览器实现这个功能。支持特征检测: try { var isFileSaverSupported = !!new Blob; } catch (e) {}
FileSaver saveAs(Blob/File data, optional DOMString filename, optional Boolean disableAutoBOM)
如果不希望 FileSaver.js 自动提供 Unicode 文本编码提示(参见:字节顺序标记),请将 disableAutoBOM 参数设置为 true。
npm install file-saver --save
import { saveAs } from 'file-saver'; FileSaver saveAs(Blob/File/Url, optional DOMString filename, optional Object { autoBom }) var FileSaver = require('file-saver'); //保存文本 var blob = new Blob(["Hello, world!"], {type: "text/plain;charset=utf-8"}); FileSaver.saveAs(blob, "hello world.txt"); //保存画布(canvas) var canvas = document.getElementById("my-canvas"), ctx = canvas.getContext("2d"); // draw to canvas... canvas.toBlob(function(blob) { saveAs(blob, "pretty image.png"); //保存网址