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
UploadFileformat - ๐งฑ 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:
imagevideodocumentaudioother
Resolved based on MIME type via FileCategoryResolver.
๐ Dependencies #
dartz: Functional programming support (Either)exception_type: CommonIFailureinterfacei_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_managerfile_pickerfluttertoastimage_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