Search code examples
androidiosflutterdartsqflite

How to download image from network and use as an asset image offline in flutter


I am using sqlflite flutter package to manage a small database for my app, there is a table where I have some urls for few images from the internet , but I need to save them and use the files instead of urls to show this images later. I mean I want to do something like this :

bool internet
internet ? Image.network('the_url') : Image.assets("path to image in my assets folder")

so, is there any way to fetch images from urls and save it to be able to access it later?


Solution

  • You can download the image with NetworkAssetBundle and convert to Unint8List

    final ByteData imageData = await NetworkAssetBundle(Uri.parse("YOUR_URL")).load("");
    final Uint8List bytes = imageData.buffer.asUint8List();
    

    Then you can load it through Image.memory() widget

    Image.memory(bytes);
    

    You can store that data in sqflite and retrive when needed