# @elastic/filesaver 中文文档

规范地址：https://npmcn.com/package/%40elastic/filesaver/

版本：1\.1\.2
npm 元数据更新时间：2026-09-25T13:38:38.542Z
中文译文更新时间：2026-11-13T10:42:18.573Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40elastic/filesaver
原文对照：https://npmcn.com/package/%40elastic/filesaver/?lang=original
项目主页：https://github.com/spalger/FileSaver.js#readme
源码仓库：https://github.com/spalger/FileSaver.js

## 关键信息（来自 npm 元数据）

- 模块格式：CommonJS
- TypeScript 类型：未声明
- 运行依赖：0 个
- 首次发布：2017-08-09T00:35:52.181Z
- 最新版本发布：2017-08-09T00:35:52.181Z
- 近 30 天下载量：107117（2026-10-14 至 2026-11-12，npm 官方下载统计）
- 已发布版本数：1（近 12 个月 0 个）

## 中文简介

[https://github.com/eligrey/FileSaver.js (英语)](https://github.com/eligrey/FileSaver.js)

## 安装

```sh
npm install @elastic/filesaver
```

也可以使用：`pnpm add @elastic/filesaver`、`yarn add @elastic/filesaver`、`bun add @elastic/filesaver`

## README

# FileSaver.js 存档副本

文件Saver.js 执行 HTML5 W3C `saveAs()` 浏览器中的文件保护界面 并非本地人支持它。 有一个 [文件saver.js 演示](http://eligrey.com/demos/FileSaver.js/) 显示保存 各种媒体类型.

FileSaver.js 是将文件保存在客户端的解决方案,并且很适合 需要生成文件的 webapp, 或保存不应保存的敏感信息 发送到外部服务器 .

寻找 `canvas.toBlob()` 保存画布? 检查出来 [画布- 到 Blob.js](https://github.com/eligrey/canvas-toBlob.js) 用于交叉浏览器执行.

## 支持的浏览器

| 浏览器 | 构造为 | 文件名 | 最大块大小 | 依赖关系 |
| --- | --- | --- | --- | --- |
| Firefox 20+ (英语) | 块 | 对 | 800个小米B | 无 |
| 火狐 < 20 | 数据: URI | 没有 | 无 | [Blob.js (英语)](https://github.com/eligrey/Blob.js) |
| 颜色 | 块 | 对 | [500个小米](https://code.google.com/p/chromium/issues/detail?id=375297) | 无 |
| 安卓的颜色 | 块 | 对 | [500个小米](https://code.google.com/p/chromium/issues/detail?id=375297) | 无 |
| IE 10+ 数据 | 块 | 对 | 600个小米B | 无 |
| 歌剧院 15+ | 块 | 对 | 500个小米 | 无 |
| 歌剧院 < 15 | 数据: URI | 没有 | 无 | [Blob.js (英语)](https://github.com/eligrey/Blob.js) |
| 萨法里 6.1+\* | 块 | 没有 | ? 吗? | 无 |
| 萨法里 < 6 | 数据: URI | 没有 | 无 | [Blob.js (英语)](https://github.com/eligrey/Blob.js) |

特性检测是可能的 :

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

### IE < 10

可以在 IE < 10 中保存文本文件,而不使用 Flash 为基础的多填充. 见 [陈文布莱恩和克瑟鲁普 `saveTextAs()`](https://github.com/koffsyrup/FileSaver.js#examples) 更多细节.

### 萨法里6.1+

有时会打开而不是保存 Blobs —— 您可能不得不引导您的 Safari 用户手动操作 新闻 ⌘\+ 键页:1 以保存打开后的文件。 使用 `application/octet-stream` 强制下载的 MIME 类型 [可以在萨法里引起问题](https://github.com/eligrey/FileSaver.js/issues/12#issuecomment-47247096)。 。 。 .

### iOS系统

setTimeout将防止被保存As触发。 由于 iOS 保存As 中的限制, 可以在新窗口中打开, 而不是下载, 如果您想要固定此选项, 请 [告诉苹果](https://bugs.webkit.org/show_bug.cgi?id=102914) 这个虫子是如何影响你的.

## 语法

```js
FileSaver saveAs(in Blob data, in DOMString filename)
```

## 实例

### 保存文本

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

标准 W3C 文件 API [`Blob`](https://developer.mozilla.org/en-US/docs/DOM/Blob) 界面并非在所有浏览器中都可用. [Blob.js (英语)](https://github.com/eligrey/Blob.js) 是一个交叉浏览器 `Blob` 执行解决这个问题.

### 保存画布

```js
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()` 方法并非在所有浏览器中都可以使用. [画布- 到 Blob.js](https://github.com/eligrey/canvas-toBlob.js) 是一个交叉浏览器 `canvas.toBlob()` 混合填充这个.

![Tracking image](https://in.getclicky.com/212712ns.gif)

## 捐款

这个 `FileSaver.js` 分发文件以 Uglify.js 编译 :

```bash
uglifyjs FileSaver.js --comments /@source/ > FileSaver.min.js
```

请在提交拉动请求前确保构建一个制作版本.

## 鲍尔安装

请看 [此还原](http://github.com/Teleborder/FileSaver.js) 用于一个与文件Saver.js相容的叉子,在包名下可用 `file-saver.js`。 。 。 .

## 常见问题

### @elastic/filesaver 是什么？

https://github\.com/eligrey/FileSaver\.js \(英语\)

### 如何安装 @elastic/filesaver？

在项目目录运行 npm install @elastic/filesaver，或使用 pnpm add / yarn add / bun add。

### @elastic/filesaver 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/elastic\_\_filesaver 是否存在。

### @elastic/filesaver 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @elastic/filesaver 可以商用吗？

@elastic/filesaver 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @elastic/filesaver 的下载量有多少？

根据 npm 官方下载统计，@elastic/filesaver 在 2026/10/14 – 2026/11/12 这 30 天内被下载 107,117 次，日均约 3,571 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @elastic/filesaver 还在维护吗？

最新版本 1\.1\.2 发布于 2017/08/09（9 年前）；至今共发布 1 个版本，其中过去 12 个月发布了 0 个；首次发布于 2017/08/09。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

