image_uploader 0.0.2 copy "image_uploader: ^0.0.2" to clipboard
image_uploader: ^0.0.2 copied to clipboard

A modular and extensible Dart package for uploading and deleting images using Firebase Storage or REST APIs. Built with clean architecture principles and easy-to-integrate dependency injection support.

example/main.dart

import 'dart:io';
import 'package:flutter/material.dart';
import 'package:image_picker/image_picker.dart';
import 'package:image_uploader/image_uploader.dart';
import 'package:get_it/get_it.dart';

final sl = GetIt.instance;

void main() {
  WidgetsFlutterBinding.ensureInitialized();

  // Choose one based on backend implementation
  fileRegisterGetItDIFireStorageDataSource();
  // fileRegisterGetItDiRestApiDataSource();

  runApp(const MyApp());
}

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

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      home: UploadDemoPage(),
    );
  }
}

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

  @override
  State<UploadDemoPage> createState() => _UploadDemoPageState();
}

class _UploadDemoPageState extends State<UploadDemoPage> {
  String? uploadedUrl;

  Future<void> _pickAndUploadImage() async {
    final picker = ImagePicker();
    final pickedFile = await picker.pickImage(source: ImageSource.gallery);

    if (pickedFile != null) {
      final file = File(pickedFile.path);

      final fileEntity = FileEntity(
        file: file,
        fileName: 'demo_image.jpg',
        path: 'demo_uploads',
        fileType: 'image',
      );

      final uploadFile = sl<UploadFile>();
      final result = await uploadFile(fileEntity);

      result.fold(
            (failure) => ScaffoldMessenger.of(context).showSnackBar(
          SnackBar(content: Text('Upload failed: $failure')),
        ),
            (url) => setState(() => uploadedUrl = url),
      );
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Image Uploader Example')),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            ElevatedButton(
              onPressed: _pickAndUploadImage,
              child: const Text('Pick & Upload Image'),
            ),
            if (uploadedUrl != null)
              Padding(
                padding: const EdgeInsets.all(16.0),
                child: Column(
                  children: [
                    const Text('Uploaded Image URL:'),
                    SelectableText(uploadedUrl!),
                  ],
                ),
              ),
          ],
        ),
      ),
    );
  }
}
0
likes
0
points
37
downloads

Publisher

unverified uploader

Weekly Downloads

A modular and extensible Dart package for uploading and deleting images using Firebase Storage or REST APIs. Built with clean architecture principles and easy-to-integrate dependency injection support.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

dartz, equatable, exception_type, fire_storage_impl, firebase_storage, flutter, get_it_di_global_variable, i_tdd, rest_api_impl

More

Packages that depend on image_uploader