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 2026Releases
latest 32-
0.4.010 May 2026Release notes
Open source →- Added Swift Package Manager support for iOS and macOS.
- Split native file helpers behind conditional imports to keep Web/Wasm analysis away from
dart:ioand platform-specific path provider implementations. - Hardened Android file name handling against path traversal.
- Moved Android
saveAsfile writes off the main thread and avoids resolving SAF document paths after saving. - Added web
saveAssupport using the existing browser download flow. - Added
downloadLinkfor web browser handoff and Android DownloadManager downloads without loading bytes into Dart memory. - Added
saveAsStreamfor native streamed writes via a temporary file. - Added
saveLinkAsStreamfor authenticated streamed URL downloads with request headers where supported. - Added native file-path copying for iOS, macOS, and Windows
saveAsto avoid loading filePath inputs into memory. - Made
saveAsfileExtensionoptional. - Fixed macOS
saveAscancellation 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.
-
0.3.111 Jul 2025Nothing published for this version
-
0.3.028 Jun 2025Nothing published for this version
-
0.2.1418 Aug 2024 -
0.2.1326 May 2024Release notes
Open source →- Merge PR #115 for wasm build
- Added 3 MP4 mime types for better compatibility with the MP4 files
-
0.2.1211 Mar 2024 -
0.2.1121 Feb 2024Release notes
Open source →- Merged PR #87 for backward compatibility with the older versions of java
-
0.2.1018 Feb 2024Release notes
Open source →- Moved from
httptodiofor 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 LinkDetailsLinkDetails( link: "www.example.com/file.extention", headers: /// Your headers here, method: /// Your method here (GET, POST, PUT, DELETE, PATCH), body: /// Request body here ),
- Both
saveFileandsaveAsmethods now have thedioClient&transformDioResponseas 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 thetransformDioResponseto 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)
- Moved from
-
0.2.918 Oct 2023 -
0.2.807 Aug 2023 -
0.2.714 Jul 2023 -
0.2.607 Jul 2023Nothing published for this version
-
0.2.526 Jun 2023Nothing published for this version
-
0.2.423 May 2023Nothing published for this version
-
0.2.322 May 2023Nothing published for this version
-
0.2.209 May 2023Release notes
Open source →- Implemented the web platform without method channel, using the conditional imports.
-
0.2.126 Mar 2023Release notes
Open source →- 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.typeAnd if you want the formatted name of the given type, you can get it by
MimeType.pdf.name -
0.2.023 Mar 2023Release notes
Open source →-
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)
-
-
0.1.127 Jul 2022 -
0.1.020 Feb 2022Release notes
Open source →- 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)
-
0.0.1209 Feb 2022 -
0.0.1109 Feb 2022 -
0.0.1026 Jul 2021Release notes
Open source →- 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.
-
0.0.917 Jul 2021 -
0.0.826 Jun 2021 -
0.0.726 Jun 2021Release notes
Open source →- Added Save as method for Android and iOS, more coming soon
- Bug fixes & Suggestions (Reported on Github)
-
0.0.620 Mar 2021 -
0.0.519 Mar 2021 -
0.0.419 Mar 2021 -
0.0.311 Mar 2021 -
0.0.211 Mar 2021 -
0.0.111 Mar 2021