intelogie/filesaver

此包的最新版本(dev-master)没有可用的许可证信息。

安装: 146

依赖项: 0

建议者: 0

安全性: 0

星星: 0

观察者: 2

Forks: 4 382

语言:JavaScript

dev-master 2016-07-01 03:30 UTC

This package is auto-updated.

Last update: 2024-09-21 20:43:46 UTC


README

如果您需要保存大于blob大小限制的文件或没有足够的RAM,请查看更高级的StreamSaver.js,它可以使用新的流API异步将数据直接保存到硬盘上。这将支持进度、取消和知道何时写入完成

FileSaver.js

FileSaver.js实现了在不原生支持它的浏览器中的saveAs() FileSaver接口。有一个FileSaver.js演示,展示了保存各种媒体类型。

FileSaver.js是客户端保存文件的解决方案,非常适合需要生成文件或保存不应发送到外部服务器的敏感信息的Web应用程序。

寻找canvas.toBlob()来保存画布?请查看canvas-toBlob.js以获取跨浏览器的实现。

支持的浏览器

功能检测是可能的

try {
    var isFileSaverSupported = !!new Blob;
} catch (e) {}

IE < 10

在不使用基于Flash的polyfills的情况下,可以在IE < 10中保存文本文件。有关详细信息,请参阅ChenWenBrian和koffsyrup的saveTextAs()

Safari 6.1+

有时可能会打开blob而不是保存。您可能需要指导您的Safari用户在文件打开后手动按+S来保存文件。使用application/octet-stream MIME类型强制下载可能会在Safari中引起问题iOS

必须在一个用户交互事件(如onTouchDown或onClick)中运行saveAs;setTimeout将阻止saveAs触发。由于iOS的限制,saveAs会在新窗口中打开而不是下载,如果您想解决这个问题,请告诉Apple此错误如何影响您。

语法

FileSaver saveAs(Blob/File data, optional DOMString filename, optional Boolean disableAutoBOM)

如果您不想FileSaver.js自动提供Unicode文本编码提示(请参阅:字节顺序标记),请将disableAutoBOM的值设置为true

示例

保存文本

var blob = new Blob(["Hello, world!"], {type: "text/plain;charset=utf-8"});
saveAs(blob, "hello world.txt");

不是所有浏览器都提供了标准的W3C File API Blob接口。Blob.js是一个跨浏览器的Blob实现,解决了这个问题。

保存画布

var canvas = document.getElementById("my-canvas"), ctx = canvas.getContext("2d");
// draw to canvas...
canvas.toBlob(function(blob) {
    saveAs(blob, "pretty image.png");
});

注意:不是所有浏览器都提供了标准的HTML5 canvas.toBlob()方法。canvas-toBlob.js是一个跨浏览器的canvas.toBlob()实现,用于填补这个空白。

保存文件

您可以在不指定文件名的情况下保存File构造函数。文件本身已经包含一个名称,有多种方法可以获取文件实例(从存储、文件输入、新构造函数等),但如果您仍然想更改名称,则可以在第二个参数中更改它。

var file = new File(["Hello, world!"], "hello world.txt", {type: "text/plain;charset=utf-8"});
saveAs(file);

Tracking image

贡献

使用Uglify.js编译了FileSaver.js的分布文件,如下所示:

uglifyjs FileSaver.js --mangle --comments /@source/ > FileSaver.min.js
# or simply:
npm run build

请确保在提交拉取请求之前构建生产版本。

安装

npm install file-saver --save
bower install file-saver