flutter_saver 1.0.1 copy "flutter_saver: ^1.0.1" to clipboard
flutter_saver: ^1.0.1 copied to clipboard

A Flutter package for saving images and downloadable links across all platforms with support for various formats.

example/lib/main.dart

import 'dart:io';

import 'package:flutter/material.dart';
import 'package:flutter_saver/flutter_saver.dart';

void main() {
  runApp(const FlutterSaverExampleApp());
}

class FlutterSaverExampleApp extends StatelessWidget {
  const FlutterSaverExampleApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Saver Demo',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.indigo),
        useMaterial3: true,
      ),
      home: const DemoHomePage(),
    );
  }
}

class DemoHomePage extends StatefulWidget {
  const DemoHomePage({super.key});

  @override
  State<DemoHomePage> createState() => _DemoHomePageState();
}

class _DemoHomePageState extends State<DemoHomePage> {
  bool _isSaving = false;
  String _status = 'برای ذخیره فایل روی دکمه کلیک کنید.';

  Future<void> _saveDemoImage() async {
    setState(() {
      _isSaving = true;
      _status = 'در حال ذخیره تصویر...';
    });

    try {
      final tempDir = Directory.systemTemp.createTempSync('flutter_saver_demo');
      final file = File('${tempDir.path}/demo_image.jpg');
      await file.writeAsBytes(List<int>.filled(256, 255));

      bool saved = false;

      if (Platform.isAndroid) {
        saved = await FlutterSaver.saveImageAndroid(
          fileImage: file,
          fileName: 'my_demo_image',
          type: 'jpg',
          pathDirectory: AndroidDirectory.pictures,
        );
      } else if (Platform.isIOS) {
        saved = await FlutterSaver.saveImageIos(
          fileImage: file,
          fileName: 'my_demo_image',
          type: 'jpg',
          pathDirectory: DirectoryType.pictures,
        );
      } else if (Platform.isMacOS) {
        saved = await FlutterSaver.saveImageMacOs(
          fileImage: file,
          fileName: 'my_demo_image',
          type: 'jpg',
          pathDirectory: MacDirectoryType.pictures,
        );
      } else if (Platform.isWindows || Platform.isLinux) {
        saved = await FlutterSaver.saveImageWindowsWeb(
          fileImage: file,
          fileName: 'my_demo_image',
          type: 'jpg',
        );
      }

      if (!mounted) return;

      setState(() {
        _isSaving = false;
        _status = saved
            ? 'تصویر با موفقیت ذخیره شد.'
            : 'ذخیره تصویر انجام نشد.';
      });
    } catch (e) {
      if (!mounted) return;
      setState(() {
        _isSaving = false;
        _status = 'خطا: $e';
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Flutter Saver Example')),
      body: Center(
        child: Padding(
          padding: const EdgeInsets.all(24),
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              const Icon(
                Icons.download_done_rounded,
                size: 72,
                color: Colors.indigo,
              ),
              const SizedBox(height: 24),
              const Text(
                'نمونه استفاده از پکیج Flutter Saver',
                style: TextStyle(fontSize: 22, fontWeight: FontWeight.bold),
                textAlign: TextAlign.center,
              ),
              const SizedBox(height: 16),
              Text(
                _status,
                textAlign: TextAlign.center,
                style: const TextStyle(fontSize: 16),
              ),
              const SizedBox(height: 32),
              SizedBox(
                width: double.infinity,
                child: ElevatedButton.icon(
                  onPressed: _isSaving ? null : _saveDemoImage,
                  icon: _isSaving
                      ? const SizedBox(
                          width: 18,
                          height: 18,
                          child: CircularProgressIndicator(strokeWidth: 2),
                        )
                      : const Icon(Icons.save_alt),
                  label: Text(
                    _isSaving ? 'در حال ذخیره...' : 'ذخیره تصویر نمونه',
                  ),
                ),
              ),
            ],
          ),
        ),
      ),
    );
  }
}
5
likes
150
points
309
downloads

Documentation

API reference

Publisher

verified publisherswanflutterdev.com

Weekly Downloads

A Flutter package for saving images and downloadable links across all platforms with support for various formats.

Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

external_path_ios_mac, flutter, http, native_android_path, path, path_provider_master

More

Packages that depend on flutter_saver