title: How To Display Images Picked From File Picker In Flutter
body: <p>I am using file picker plugin to pick images I want to display the picked images on the screen below is my code Am able to pick image name and path and display them as text in my app but unable to display them as images, After I display those image then I want to upload the image to the firebase storage.</p>
  <hr />
  <pre><code>import 'package:flutter/material.dart';
  
  import 'package:flutter/services.dart';
  import 'package:file_picker/file_picker.dart';
  
  void main() =&gt; runApp(MyApp());
  
  class MyApp extends StatefulWidget {
    @override
    _MyAppState createState() =&gt; new _MyAppState();
  }
  
  class _MyAppState extends State&lt;MyApp&gt; {
    final GlobalKey&lt;ScaffoldState&gt; _scaffoldKey = GlobalKey&lt;ScaffoldState&gt;();
    String _fileName;
    String _path;
    Map&lt;String, String&gt; _paths;
    String _extension;
    bool _loadingPath = false;
    bool _multiPick = false;
    FileType _pickingType = FileType.any;
    TextEditingController _controller = new TextEditingController();
  
    @override
    void initState() {
      super.initState();
      _controller.addListener(() =&gt; _extension = _controller.text);
    }
  
    void _openFileExplorer() async {
      setState(() =&gt; _loadingPath = true);
      try {
        if (_multiPick) {
          _path = null;
          _paths = await FilePicker.getMultiFilePath(
              type: _pickingType,
              allowedExtensions: (_extension?.isNotEmpty ?? false)
                  ? _extension?.replaceAll(' ', '')?.split(',')
                  : null);
        } else {
          _paths = null;
          _path = await FilePicker.getFilePath(
              type: _pickingType,
              allowedExtensions: (_extension?.isNotEmpty ?? false)
                  ? _extension?.replaceAll(' ', '')?.split(',')
                  : null);
        }
      } on PlatformException catch (e) {
        print(&quot;Unsupported operation&quot; + e.toString());
      }
      if (!mounted) return;
      setState(() {
        _loadingPath = false;
        _fileName = _path != null
            ? _path.split('/').last
            : _paths != null ? _paths.keys.toString() : '...';
      });
    }
  
    void _clearCachedFiles() {
      FilePicker.clearTemporaryFiles().then((result) {
        _scaffoldKey.currentState.showSnackBar(
          SnackBar(
            backgroundColor: result ? Colors.green : Colors.red,
            content: Text((result
                ? 'Temporary files removed with success.'
                : 'Failed to clean temporary files')),
          ),
        );
      });
    }
  
    @override
    Widget build(BuildContext context) {
      return new MaterialApp(
        home: new Scaffold(
          key: _scaffoldKey,
          appBar: new AppBar(
            title: const Text('File Picker example app'),
          ),
          body: new Center(
              child: new Padding(
                padding: const EdgeInsets.only(left: 10.0, right: 10.0),
                child: new SingleChildScrollView(
                  child: new Column(
                    mainAxisAlignment: MainAxisAlignment.center,
                    children: &lt;Widget&gt;[
                      new Padding(
                        padding: const EdgeInsets.only(top: 20.0),
                        child: new DropdownButton(
                            hint: new Text('LOAD PATH FROM'),
                            value: _pickingType,
                            items: &lt;DropdownMenuItem&gt;[
                              new DropdownMenuItem(
                                child: new Text('FROM AUDIO'),
                                value: FileType.audio,
                              ),
                              new DropdownMenuItem(
                                child: new Text('FROM IMAGE'),
                                value: FileType.image,
                              ),
                              new DropdownMenuItem(
                                child: new Text('FROM VIDEO'),
                                value: FileType.video,
                              ),
                              new DropdownMenuItem(
                                child: new Text('FROM MEDIA'),
                                value: FileType.media,
                              ),
                              new DropdownMenuItem(
                                child: new Text('FROM ANY'),
                                value: FileType.any,
                              ),
                              new DropdownMenuItem(
                                child: new Text('CUSTOM FORMAT'),
                                value: FileType.custom,
                              ),
                            ],
                            onChanged: (value) =&gt; setState(() {
                              _pickingType = value;
                              if (_pickingType != FileType.custom) {
                                _controller.text = _extension = '';
                              }
                            })),
                      ),
                      new ConstrainedBox(
                        constraints: BoxConstraints.tightFor(width: 100.0),
                        child: _pickingType == FileType.custom
                            ? new TextFormField(
                          maxLength: 15,
                          autovalidate: true,
                          controller: _controller,
                          decoration:
                          InputDecoration(labelText: 'File extension'),
                          keyboardType: TextInputType.text,
                          textCapitalization: TextCapitalization.none,
                        )
                            : new Container(),
                      ),
                      new ConstrainedBox(
                        constraints: BoxConstraints.tightFor(width: 200.0),
                        child: new SwitchListTile.adaptive(
                          title: new Text('Pick multiple files',
                              textAlign: TextAlign.right),
                          onChanged: (bool value) =&gt;
                              setState(() =&gt; _multiPick = value),
                          value: _multiPick,
                        ),
                      ),
                      new Padding(
                        padding: const EdgeInsets.only(top: 50.0, bottom: 20.0),
                        child: Column(
                          children: &lt;Widget&gt;[
                            new RaisedButton(
                              onPressed: () =&gt; _openFileExplorer(),
                              child: new Text(&quot;Open file picker&quot;),
                            ),
                            new RaisedButton(
                              onPressed: () =&gt; _clearCachedFiles(),
                              child: new Text(&quot;Clear temporary files&quot;),
                            ),
                          ],
                        ),
                      ),
                      new Builder(
                        builder: (BuildContext context) =&gt; _loadingPath
                            ? Padding(
                            padding: const EdgeInsets.only(bottom: 10.0),
                            child: const CircularProgressIndicator())
                            : _path != null || _paths != null
                            ? new Container(
                          padding: const EdgeInsets.only(bottom: 30.0),
                          height: MediaQuery.of(context).size.height * 0.50,
                          child: new Scrollbar(
                              child: new ListView.separated(
                                itemCount: _paths != null &amp;&amp; _paths.isNotEmpty
                                    ? _paths.length
                                    : 1,
                                itemBuilder: (BuildContext context, int index) {
                                  final bool isMultiPath =
                                      _paths != null &amp;&amp; _paths.isNotEmpty;
                                  final String name = 'File $index: ' +
                                      (isMultiPath
                                          ? _paths.keys.toList()[index]
                                          : _fileName ?? '...');
                                  final path = isMultiPath
                                      ? _paths.values.toList()[index].toString()
                                      : _path;
  
                                  return new ListTile(
                                    title: new Text(
                                      name,
                                    ),
                                    subtitle: new Text(_path),
                                  );
                                },
                                separatorBuilder:
                                    (BuildContext context, int index) =&gt;
                                new Divider(),
                              )),
                        )
                            : new Container(),
                      ),
                    ],
                  ),
                ),
              )),
        ),
      );
    }
  }
  </code></pre>