无法从颤振网络将图像上传到 Firebase 存储

Posted

技术标签:

【中文标题】无法从颤振网络将图像上传到 Firebase 存储【英文标题】:Can't upload image to Firebase Storage from flutter web 【发布时间】:2021-03-07 16:27:41 【问题描述】:

所以我尝试了这个来获取图像并上传:

var file;
      html.InputElement uploadInput = html.FileUploadInputElement()
        ..accept = "image/*";
      uploadInput.click();
      uploadInput.onChange.listen((event) 
        file = uploadInput.files.first;
        final reader = html.FileReader();
        reader.readAsDataUrl(file);
        reader.onLoadEnd.listen((event) async 
          print("done");
          StorageReference storageReference = FirebaseStorage.instance
              .ref()
              .child('$widget.uid/$DateTime.now()');
          StorageUploadTask uploadTask = storageReference.putData(file);
          await uploadTask.onComplete;
          print('File Uploaded');
          print(storageReference.path);
          storageReference.getDownloadURL().then((fileURL) 
            setState(() 
              _uploadedFileURL = fileURL;
              
            );
          );
        );
      );

如教程中所示,但是这个家伙使用 .put() 而不是 putData() 但它现在已被弃用,所以当使用 .put() 我得到:

需要一个“文件”类型的值,但得到一个“文件$”类型的值

并使用 .putData() 我得到:

需要一个“Uint8List”类型的值,但得到一个“File$”类型的值

有什么想法可以转换 File$ 或从 Flutter Web 的用户直接导入 File 或 Uint8List 吗? 谢谢

【问题讨论】:

【参考方案1】:

试试reader.readAsArrayBuffer(file)storageReference.putData(reader.result)

【讨论】:

以上是关于无法从颤振网络将图像上传到 Firebase 存储的主要内容,如果未能解决你的问题,请参考以下文章

从颤振上传图像到firebase存储

将图像从颤振上传到火力基地(没有任何反应)

是否可以使用 Firebase 存储将多个图像添加到 Firebase 数据库? - 颤振

无法使用 Flutter Web 的 image_picker 将文件上传到 Firebase 存储

无法从 python 服务器将图像上传到 Firebase 存储

Kotlin - 无法将图像上传到 Firebase 存储