安装依赖项 首先,需要安装两个依赖项:file-saver和@types/file-saver。 npm install --save file-saver @types/file-saver
创建服务 接下来,我们需要创建一个名为“FileSaverService”的服务,该服务封装了“文件保存”过程。
import { Injectable } from '@angular/core'; import * as FileSaver from 'file-saver';
@Injectable() export class FileSaverService {
constructor() { }
saveFile(file: Blob, fileName: string) { FileSaver.saveAs(file, fileName); }
}
import { Component } from '@angular/core'; import { FileSaverService } from './file-saver.service';
@Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent {
constructor(private fileSaverService: FileSaverService) {}
save(event) { // 假设文件是从event中读取的 const file = new Blob(['hello, world'], { type: 'text/plain;charset=utf-8' }); const fileName = 'hello_world.txt'; this.fileSaverService.saveFile(file, fileName); }
}
在这个例子中,“save”方法处理“click”事件,调用“FileSaverService”来保存文件,并将“download”属性设置为要保存的文件名。当单击这个链接时,浏览器将会显示一个“保存文件”对话框,允许用户选择保存文件的位置。