Angular File Saver is an AngularJS service that leverages FileSaver.js and Blob.js to implement the HTML5 W3C saveAs() interface in browsers that do not natively support it
File dist/angular-file-saver.bundle.js contains all required dependencies and
grants access to both Blob.js and FileSaver.js polyfills via Blob and
SaveAs services.
# Using bower:
$ bower install angular-file-saver
# Using npm:
$ npm install angular-file-saver- Include
ngFileSavermodule into your project; - Pass both
FileSaverandBlobservices as dependencies; - Create a Blob object by
passing an array with data as the first argument and an object with set of options
as the second one:
new Blob(['text'], { type: 'text/plain;charset=utf-8' }); - Invoke
FileSaver.saveAswith the following arguments:dataBlob: a Blob instance;filenameString: a custom filename (an extension is optional);disableAutoBOMBoolean: (optional) Disable automatically provided Unicode text encoding hints;
A core Angular factory.
Immediately starts saving a file
- Blob
data: a Blob instance; - String
filename: a custom filename (an extension is optional); - Boolean
disableAutoBOM: (optional) Disable automatically provided Unicode text encoding hints;
An Angular factory that returns a Blob instance.
An Angular factory that returns a FileSaver.js polyfill.
JS
function ExampleCtrl(FileSaver, Blob) {
var vm = this;
vm.val = {
text: 'Hey ho lets go!'
};
vm.download = function(text) {
var data = new Blob([text], { type: 'text/plain;charset=utf-8' });
FileSaver.saveAs(data, 'text.txt');
};
}
angular
.module('fileSaverExample', ['ngFileSaver'])
.controller('ExampleCtrl', ['FileSaver', 'Blob', ExampleCtrl]);HTML
<div class="wrapper" ng-controller="ExampleCtrl as vm">
<textarea
ng-model="vm.val.text"
name="textarea" rows="5" cols="20">
Hey ho let's go!
</textarea>
<a href="" class="btn btn-dark btn-small" ng-click="vm.download(vm.val.text)">
Download
</a>
</div>MIT © Philipp Alferov