【问题标题】:Is it possible to generate zip file and download in Angular 4?是否可以在 Angular 4 中生成 zip 文件并下载?
【发布时间】:2018-06-29 10:20:38
【问题描述】:

我是 Angular 4 的初学者。我参考了很多链接来生成 Zip 文件,但我无法获得正确的解决方案。
是否可以在Angular 4 中生成 Zip 文件?
如果可能,那怎么做?

【问题讨论】:

  • 生成 zip 文件(或任何文件)不依赖于 Angular。有用于在客户端生成文件的 JavaScript 解决方案。查看JSZip,看看是否可以将其与 Angular 集成。
  • @zfor 感谢您的解决方案,但我该怎么做?你对 Angular 和 javascript 有什么想法吗?

标签: angular


【解决方案1】:

您可以在 Angular 中使用任何 JS 库。因此,例如,您可以使用 JSzip,然后只需:

import * as JSZip from 'jszip';

现在您将可以访问此库方法。您可以阅读更多关于在 Angular 中使用纯 JS 库的信息。有很多关于它的信息,甚至还有如何正确使用它的明确说明。我认为,如果您更多地深入研究这个主题,而不是一步一步地获得明确的指导,那会更好。你会学到更多,如果你将来遇到这样的问题,你会很容易地解决它。我希望这个建议对你有所帮助。

【讨论】:

【解决方案2】:

安装库

$ npm install --save npm install jszip

在文件 tsconfig.json 中

{"compilerOptions": {"paths": {
  "jszip": ["../node_modules/jszip/dist/jszip.min.js"]
}}}

在文件 demo.component.ts 中

import { saveAs, encodeBase64 } from '@progress/kendo-file-saver';
import * as JSZip from 'jszip';

demo.component.ts 上的函数

downloadFileExample() {
  const jszip = new JSZip();
  jszip.file('Hello.txt', 'Hello World\n');

  jszip.generateAsync({ type: 'blob' }).then(function(content) {
    // see FileSaver.js
    saveAs(content, 'example.zip');
  });
}

此示例使用 Angular 6。

【讨论】:

  • 如果您添加npm install @types/jszip,则有可用的类型。
  • 我们如何在单个 zip 文件夹中下载多个文件??
  • 这是一个例子download-multiple-files.js
猜你喜欢
  • 1970-01-01
  • 2021-07-13
  • 2018-02-19
  • 1970-01-01
  • 1970-01-01
  • 2015-09-06
  • 2023-02-24
  • 1970-01-01
  • 2019-12-14
相关资源
最近更新 更多