image_core 0.0.6
image_core: ^0.0.6 copied to clipboard
A Dart/Flutter package for standardized image and file upload handling using SOLID principles. Supports cross-platform file conversion from XFile, File, and PlatformFile to a unified UploadFile model, [...]
image_core #
A robust and extensible Dart/Flutter package that simplifies image and file upload handling across platforms using SOLID principles and clean architecture. This package provides a foundation to manage file conversions, categorization, and streamlined upload/delete operations with support for multiple file types like XFile
, File
, and PlatformFile
.
β¨ Features #
- β
Platform-agnostic file support (
XFile
,File
,PlatformFile
) - π¦ Convert file data to standardized
UploadFile
format - π§± Enum-based file categorization (
image
,video
,document
,audio
,other
) - π§© Extension-based conversion utilities
- π MIME type detection and content type resolution
- π§ͺ Functional error handling using
Either<IFailure, TResult>
fromdartz
- π Optional toast notification messages on success
π¦ Installation #
flutter pub add image_core
π§° Getting Started #
π Extensions #
XFile.toUploadFileFromXFile()
#
Converts a XFile
into a standardized UploadFile
.
PlatformFile.toUploadFileFromPlatformFile()
#
Converts a PlatformFile
from file_picker
to UploadFile
.
file.toUploadFileFromFile()
#
Converts a regular Dart File
to an UploadFile
.
String?.getFileName()
#
Generates a fallback file name based on timestamp if null or empty.
String?.getFileExtension()
#
Extracts the file extension from a filename or path.
π UploadFile
Model #
class UploadFile {
final Uint8List bytes;
final String? name;
final String? mimeType;
final String? collectionPath;
final String? uploadingToastTxt;
final Map<String, String>? metadata;
final String? contentDisposition;
final FileCategory category;
...
}
π File Category #
The FileCategory
enum includes:
image
video
document
audio
other
Resolved based on MIME type via FileCategoryResolver
.
π Dependencies #
dartz
: Functional programming support (Either
)exception_type
: CommonIFailure
interfacei_tdd
: Toast or UI feedback handler withhandleReport()
cross_file
,file_picker
,mime
: Platform and file type support
π License #
MIT License. See LICENSE file for details.
π£ Contributions #
Feel free to open issues, suggest features, or submit PRs. Contributions are welcome!
π Related Packages #
firebase_storage_manager
file_picker
fluttertoast
image_picker
π Example Use Case #
You want to upload an image picked via image_picker
:
final XFile? file = await ImagePicker().pickImage(source: ImageSource.gallery);
final UploadFile uploadFile = await file.toUploadFileFromXFile(
collectionPath: 'profiles/$id/images',
);
π¨βπΌ Author #
image_core Developed with β€οΈ by Shohidul Islam