【问题标题】:How to upload image from assets in flutter to firebase storage?如何将图像从颤动的资产上传到firebase存储?
【发布时间】:2020-09-26 22:19:38
【问题描述】:

我正在使用以下代码从图库中选择图像以在 Flutter 应用程序中上传到 Firebase 存储,但我希望如果用户不选择图像,则应将资产中的默认图像上传到 Firebase 存储。我应该为要从资产中选择的图像编写什么代码,并将其设置为等于File avatarImageFile,以便可以将其上传到 Flutter 应用程序中的 Firebase 存储

File avatarImageFile;
    Future getImage() async {
        File image = await ImagePicker.pickImage(source: ImageSource.gallery);

        if (image != null) {
          setState(() {
            avatarImageFile = image;
            isLoading = true;
          });
        }

        uploadFile();
      }

【问题讨论】:

    标签: image firebase flutter firebase-storage


    【解决方案1】:

    您可以将资产图片转换为文件,然后上传到 Firebase! 这是要转换的代码:

    import 'dart:async';
    import 'dart:io';
    
    import 'package:flutter/services.dart' show rootBundle;
    import 'package:path_provider/path_provider.dart';
    
    Future<File> getImageFileFromAssets(String path) async {
      final byteData = await rootBundle.load('assets/$path');
    
      final file = File('${(await getTemporaryDirectory()).path}/$path');
      await file.writeAsBytes(byteData.buffer.asUint8List(byteData.offsetInBytes, byteData.lengthInBytes));
    
      return file;
    }
    

    在你的例子中,你会这样调用这个函数:

    File f = await getImageFileFromAssets('images/myImage.jpg');

    并编辑您的代码:

    File avatarImageFile;
    
        Future getImage() async {
            File f = await getImageFileFromAssets('path of your asset Image');
            File image = await ImagePicker.pickImage(source: ImageSource.gallery);
    
    
          if (image != null) {
            setState(() {
              avatarImageFile = image;
              isLoading = true;
            });
          }else{
            avatarImageFile = f;
            isLoading = true;
          }
    
            uploadFile();
          }
    

    【讨论】:

      猜你喜欢
      • 2021-04-07
      • 2020-11-26
      • 1970-01-01
      • 2021-03-07
      • 2021-04-16
      • 1970-01-01
      • 2022-01-17
      • 2017-03-27
      • 2017-09-25
      相关资源
      最近更新 更多