flutter_saver 1.0.1
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.
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 ? 'در حال ذخیره...' : 'ذخیره تصویر نمونه',
),
),
),
],
),
),
),
);
}
}