image_field 0.0.4 copy "image_field: ^0.0.4" to clipboard
image_field: ^0.0.4 copied to clipboard

Flutter package enables users to upload and manage images by adding image field to a form.

flutter image field #

Flutter package enables users to upload and manage images by adding image field to a form, in addition to strong functionality to adapt images before uploading to the server and alter the widget before rendering it and a lot of other features.

Screenshot #

wait a moment

Features #

  • Best structure supports the upload to a server
  • localizations, override all texts
  • Support multiple upload
  • You can specify the limited number of image uploads
  • Upload progress

Usage #

1.Install Package With Dart:

$ dart pub add image_field

With Flutter:

$ flutter pub add image_field

This will add a line like this to you package's pubspec.yaml (and run an implicit dart pub get):

 
2.Implementation
</br>You can use   ``` ImageField() ```   for upload to a server by following the example below:

import 'dart:async'; import 'dart:io';

import 'package:flutter/material.dart'; import 'package:image_field/image_field.dart'; import 'package:image_field/linear_progress_Indicator.dart'; import 'package:image_picker/image_picker.dart';

typedef Progress = Function(double percent);

class UploadRemoteImageForm extends StatefulWidget { const UploadRemoteImageForm({super.key, required this.title}); final String title; @override State

class _UploadRemoteImageFormState extends State

dynamic remoteFiles;

Future

@override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text(widget.title), ), body: Form( key: _formKey, child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [

            //Remote Image upload
            ImageField(
                texts: const {
                  'fieldFormText': 'Upload to server',
                  'titleText': 'Upload to server'
                },
                defaultFiles: remoteFiles != null
                    ? remoteFiles!.map((image) {
                        return ImageAndCaptionModel(
                            file: image, caption: image.alt.toString());
                      }).toList()
                    : [],
                remoteImage: true,
                onUpload: (dynamic pickedFile,
                    ControllerLinearProgressIndicator?
                        controllerLinearProgressIndicator) async {
                  dynamic fileUploaded = await uploadToServer(
                    pickedFile,
                    uploadProgress: (percent) {
                      var uploadProgressPercentage = percent / 100;
                      controllerLinearProgressIndicator!
                          .updateProgress(uploadProgressPercentage);
                    },
                  );
                  return fileUploaded;
                },
                onSave: (List<ImageAndCaptionModel>? imageAndCaptionList) {
                  remoteFiles = imageAndCaptionList;
                }),
  
          ],
        ),
 
    ));

} }


</br>Simple locally upload by adding ``` ImageField() ``` to a form like the following example:

import 'package:flutter/material.dart'; import 'package:image_field/image_field.dart'; import 'package:image_field/linear_progress_Indicator.dart';

class UploadLocalImageForm extends StatefulWidget { const UploadLocalImageForm({super.key, required this.title});

final String title;

@override State

class _UploadLocalImageFormState extends State

@override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text(widget.title), ), body: Form( key: _formKey, child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [

            //...
            // textfield
            // checkbox
            // datefield
            // ....

          //Local image upload
            ImageField(onSave:(List<ImageAndCaptionModel>? imageAndCaptionList) {
                //you can save imageAndCaptionList using local storage
                //or in a simple variable
            },),

             //....
             //Submit button
             //....
          ],
        ),
      ),
    );

} }


### Main Parameters

| Parameter       | Type    | Description                                                                                                                                        |
|-----------------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------|
| `defaultFiles`    | List<ImageAndCaptionModel> |Used to add default images on load                                             |  
| `remoteImage`   | Widget  |  Used for remote upload image, if True should implement onUpload() function   |
| `texts`   |   Map<String, String>  | key/value variable used for localizations or to override the defaults texts used by the Imagefield.      |
| `multipleUpload`    | bool  | Enable user to pick multiple files.         |
| `cardinality`            | int  |  Maximum number of files that can be uploaded.    

### Main Functions

| Function       | Parameter    | Description                                                                                                                                        |
|-----------------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------|
| `onUpload`    | dynamic Function(dynamic, ControllerLinearProgressIndicator?)? | This function has [dataSource] image that uploaded by a user to send them to the server and [controllerLinearProgressIndicator] used as a reference variable to indicate the uploading progress to the server and return the result to store it in the [fileList] that used in the field.                                             |  
| `onSave`   | void Function(List<ImageAndCaptionModel>?)?  |  Used to update the form with the uploaded files, it called when back from the listview  |
| `alterFieldForm`   |   Widget Function(List<ImageAndCaptionModel>?, Widget)?  | It's a hook function used to alter the widget of the field(Thumbnail List) in the form before rendering it      |

 ## License

This package is licensed under the [MIT License](https://github.com/mattar88/flutter_image_field/blob/main/LICENSE)


4
likes
0
pub points
87%
popularity

Publisher

unverified uploader

Flutter package enables users to upload and manage images by adding image field to a form.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

cached_network_image, flutter, image_picker, scrollable_positioned_list, skeletons

More

Packages that depend on image_field