首页 > 解决方案 > 我想知道如何将来自 Flutter Web 的图像上传到 Firebase 存储

问题描述

我要将图像带到网络并将其上传到存储。我正在使用 sdk 2.7.0 和 image_picker_web: ^1.0.9。并使用以下代码获取图像。

下面是用于在屏幕上输出图像的按钮和用于将图像上传到存储器的按钮。

  RaisedButton(
    onPressed: () {
      pickImage().then((value) {
        setState(() {
          mediaInfo = value;
        });
      });
    },
    child: Text("Select Image"),
  ),

  TextButton(
      onPressed: () async {
        StorageReference storageReference = FirebaseStorage.instance
            .ref()
            .child('testImg/post.jpg');
        StorageUploadTask uploadTask = storageReference.putFile(File(mediaInfo.data));
        await uploadTask.onComplete;
        print('File Uploaded');
        String returnURL;
        await storageReference.getDownloadURL().then((fileURL) {
          returnURL =  fileURL;
        });
        return returnURL;
      },
      child: Text("upload"))

图像选取方法

  Future<MediaInfo> pickImage() async {
    MediaInfo mediaInfo = await ImagePickerWeb.getImageInfo;
    // imageFile = await ImagePickerWeb.getImage(outputType: ImageType.file);
    // imageFile2 = await ImagePickerWeb.getImage(outputType: ImageType.bytes);

    if (imageFile != null) {
      print(imageFile.name);
      // print(imageFile2.toString());
    }

    // return mediaInfo;
  }

此图像文件不可用于存储代码。您如何在网络上处理此问题?

 StorageUploadTask uploadTask = storageReference.putFile(File(mediaInfo.data)); //error!

谢谢你。

标签: flutterweb

解决方案


推荐阅读