PackageTrack
Sign in Get early access

file_saver

Save files from bytes, paths, streams, and URLs across Android, iOS, Web, Windows, macOS, and Linux.

0.4.0 258K downloads/mo #747 most downloaded on pub.dev incrediblezayed/file_saver

What this package is like to depend on

Last release 3 months ago

10 May 2026

Release timing varies

gaps range from 1 weeks to 10 months

Most releases are documented

notes for 26 of 32 stable releases

Nothing withdrawn

no release was ever pulled

5 years old

32 releases · first in 2021

1 release in the last 12 months

see the full history below

Release timeline

32 releases · Mar 2021 to May 2026
2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 32
  1. 0.4.0 10 May 2026
    Release notes
    • Added Swift Package Manager support for iOS and macOS.
    • Split native file helpers behind conditional imports to keep Web/Wasm analysis away from dart:io and platform-specific path provider implementations.
    • Hardened Android file name handling against path traversal.
    • Moved Android saveAs file writes off the main thread and avoids resolving SAF document paths after saving.
    • Added web saveAs support using the existing browser download flow.
    • Added downloadLink for web browser handoff and Android DownloadManager downloads without loading bytes into Dart memory.
    • Added saveAsStream for native streamed writes via a temporary file.
    • Added saveLinkAsStream for authenticated streamed URL downloads with request headers where supported.
    • Added native file-path copying for iOS, macOS, and Windows saveAs to avoid loading filePath inputs into memory.
    • Made saveAs fileExtension optional.
    • Fixed macOS saveAs cancellation so the platform call always completes.
    • Added Windows invalid file name validation for saveAs.
    • Updated Android Gradle, Kotlin, JVM, and SDK settings for current Flutter support.
    Open source →
  2. 0.3.1 11 Jul 2025

    Nothing published for this version

  3. 0.3.0 28 Jun 2025

    Nothing published for this version

  4. 0.2.14 18 Aug 2024
    Release notes
    • Merged PR #117 to update conditional imports for web (wasm)
    • Merged PR #121 added dynamic access to enum for whoever need it,
      MimeType.get('pdf');
    • Merged PR #123 for upgrade to web 1.0.0
    Open source →
  5. 0.2.13 26 May 2024
    Release notes
    • Merge PR #115 for wasm build
    • Added 3 MP4 mime types for better compatibility with the MP4 files
    Open source →
  6. 0.2.12 11 Mar 2024
    Release notes
    • Minor network related bug fixes, fixing issue #105
    • & Issue #106
    Open source →
  7. 0.2.11 21 Feb 2024
    Release notes
    • Merged PR #87 for backward compatibility with the older versions of java
    Open source →
  8. 0.2.10 18 Feb 2024
    Release notes
    • Moved from http to dio for better control over the headers and other options
    • LinkDetails has more options such as method & body
      here is the example of how to use the LinkDetails
       LinkDetails(
           link: "www.example.com/file.extention",
           headers: /// Your headers here,
           method: /// Your method here (GET, POST, PUT, DELETE, PATCH),
           body: /// Request body here
       ),
    • Both saveFile and saveAs methods now have the dioClient & transformDioResponse as a parameter, so you can pass your own dio client to the method and it will use that client to download the file & you can also pass the transformDioResponse to transform the response as per your requirement.\
      await FileSaver.instance.saveFile(
                        name: "FileName",
                        link: "www.example.com/file.extention", 
                        filePath: "pathOfFile",
                        file: File(),
                        bytes: bytes,
                        ext: "extention",
                        mimeType: MimeType.pdf,
                        dioClient: Dio(),
                        transformDioResponse: (response) {
                          return response.data;
                        });
    • Fixed (GitHub issue #95)
    • Fixed (GitHub issue #92)
    Open source →
  9. 0.2.9 18 Oct 2023
    Release notes
    • Merged PR #75 resolving issue [#75][https://github.com//issues/75]
    • Merged PR #79 resolving issue #78
    • Merged PR #74 resolving issue #73
    • Merged PR #77 for better README.md
    Open source →
  10. 0.2.8 07 Aug 2023
    Release notes
    • Moving saveAs() support for macOS to production.
    Open source →
  11. 0.2.7 14 Jul 2023
    Release notes
    • Updated the http package to the latest version (issue #63)
    Open source →
  12. 0.2.6 07 Jul 2023

    Nothing published for this version

  13. 0.2.5 26 Jun 2023

    Nothing published for this version

  14. 0.2.4 23 May 2023

    Nothing published for this version

  15. 0.2.3 22 May 2023

    Nothing published for this version

  16. 0.2.2 09 May 2023
    Release notes
    • Implemented the web platform without method channel, using the conditional imports.
    Open source →
  17. 0.2.1 26 Mar 2023
    Release notes
    • Fixed a bug in web (git issue #57)
    • Updated dart version constraints
    • Updated MimeType enum to enhanced enum (from dart 2.17.0) and removed method getMimetype(), if you want to get the mimeType from the enum you can directly write
      MimeType.pdf.type
    

    And if you want the formatted name of the given type, you can get it by

    MimeType.pdf.name
    
    Open source →
  18. 0.2.0 23 Mar 2023
    Release notes
    • Fixed several issues from github

    • Feature Added a parameter link for saving file directly through network

    • Feature Added filePath if you have the filepath, no need to get the bytes of the file, you can directly pass the path in filePath parameter and the file_saver will do the rest

    • Feature Added file parameter to direct save the file from File object

    • Regardless of all the new options for saving files, bytes parameter is still there and you can still use it but, All the parameters are optional now so you have to use atleast one of these parameter (link, filePath, file, bytes)

    • Changed all the parameters to named instead of positional so now instead of

      await FileSaver.instance.saveFile("FileName", bytes, "extension", mimeType: mimeType);
      
      await FileSaver.instance.saveAs("File", bytes, "extension", type);
      

      you will have to use

      await FileSaver.instance.saveFile(
                        name: "FileName",
                        link: "www.example.com/file.extention", 
                        filePath: "pathOfFile",
                        file: File(),
                        bytes: bytes,
                        ext: "extention",
                        mimeType: type);
      
      await FileSaver.instance.saveFile(
                        name: "FileName",
                        link: "www.example.com/file.extention", 
                        filePath: "pathOfFile",
                        file: File(),
                        bytes: bytes,
                        ext: "extention",
                        mimeType: type);
      

      link, filePath, bytes & file are all optional parameters but any one of these parameter is required and thus you can use any one of these parameter as per your requirement

    • Changed the MimeType enum values to lower case (as per dart's naming conventions)

    • Upgraded everything to latest versions (gradle tools = 7.4.2, kotlin=1.8.0)

    Open source →
  19. 0.1.1 27 Jul 2022
    Release notes
    • Updated the pub to the latest commit, fixing the issues with flutter 3.
    Open source →
  20. 0.1.0 20 Feb 2022
    Release notes
    • Fixed the incomplete path in saveFile method (GitHub issue #16)
    • Fixed some crashes in some folders on saveAs method with the help of this answer
    • Fixed application crash issue reply already submitted with the help of this suggestion (GitHub issue #14)
    • Fixed Wrong or missing file extension when calling saveAs() (GitHub issue #20)
    Open source →
  21. 0.0.12 09 Feb 2022
    Release notes
    • Fixed Path Provider version
    Open source →
  22. 0.0.11 09 Feb 2022
    Release notes
    • Updated Readme
    • Upgraded Path Provider
    • Updated Kotlin version to 1.16.10
    Open source →
  23. 0.0.10 26 Jul 2021
    Release notes
    • Updated Readme
    • Due to security reasons, I'm not able to save the files to downloads folder in android, if anyone has any idea that would work on Android 11 so please connect.
    Open source →
  24. 0.0.9 17 Jul 2021
    Release notes
    • Android Permission Bug Fixed
    • Other bugs fixes
    Open source →
  25. 0.0.8 26 Jun 2021
    Release notes
    • Minor Bug Fixes
    • Updated Readme
    Open source →
  26. 0.0.7 26 Jun 2021
    Release notes
    • Added Save as method for Android and iOS, more coming soon
    • Bug fixes & Suggestions (Reported on Github)
    Open source →
  27. 0.0.6 20 Mar 2021
    Release notes
    • Added More File Types
    Open source →
  28. 0.0.5 19 Mar 2021
    Release notes
    • Minor Bug Fixes
    Open source →
  29. 0.0.4 19 Mar 2021
    Release notes
    • saveFile method returns the path where the file is saved.
    Open source →
  30. 0.0.3 11 Mar 2021
    Release notes
    • Minor Bug Fixes
    Open source →
  31. 0.0.2 11 Mar 2021
    Release notes
    • Updated Guide
    Open source →
  32. 0.0.1 11 Mar 2021
    Release notes
    • File Saver for all platforms
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive