A lightweight Flutter plugin to download any file (image, video, etc.) from a URL and save it directly to the gallery, with real-time progress updates and permission handling.

✨ Features

✅ Downloads files with progress feedback

🖼️ Saves images/videos to the gallery

📱 Handles Android & iOS permissions automatically

⚙️ Customizable progress callback

🔐 Supports Android 13+ scoped storage

🚀 Getting Started

Prerequisites Flutter SDK 3.10 or higher

Android SDK 21+

iOS 11.0 or higher

Add Dependency In your pubspec.yaml:

dependencies: gallery_downloader: ^1.0.3 Then run:

flutter pub get

📦 Usage Example

final result = await GalleryDownloader.downloadAndSaveToGallery( fileUrl: 'https://example.com/sample.jpg', onReceiveProgress: (received, total) { double progress = received / total * 100; print('Downloading: ${progress.toStringAsFixed(0)}%'); }, );

if (result'success') { print('File saved at: ${result'filePath'}'); } else { print('Error: ${result'message'}'); }

🔐 Permissions This plugin automatically handles permission requests using permission_handler:

On Android 13+, no storage permission is needed

On Android ≤ 12, storage permission is requested

On iOS, no extra permission is required

Make sure to update your AndroidManifest.xml:

gradle

defaultConfig { minSdkVersion 21 }