Have you ever wanted to add a Save as… button to a webapp? Whether you’re making an advanced WebGL-powered CAD webapp and want to save 3D object files or you just want to save plain text files in a simple Markdown text editor, saving files in the browser has always been a tricky business. Usually when you want to save a file generated with JavaScript, you have to send the data to your server and then return the data right back with a Content-disposition: attachment header. This is less than ideal for webapps that need to work offline. The W3C File API includes a FileSaver interface, which makes saving generated data as easy as saveAs(data, filename), though unfortunately it will eventually be removed from the spec. With FileSaver.js, which implements FileSaver in all modern browsers, it’s possible to generate any type of file you want right in the browser, document editors can have an instant save button that doesn’t rely on an online connection.
Features
- Save really large files bigger than the blob's size limitation
- Save data directly to the hard drive asynchronously
- The solution to saving files on the client-side
- Perfect for web apps that generates files on the client
- If the file is coming from the server use the Content-Disposition attachment response header
- Check out canvas-toBlob.js for a cross-browser implementation