【问题标题】:Can't upload image to Firebase Storage from flutter web无法从颤振网络将图像上传到 Firebase 存储
【发布时间】: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 吗? 谢谢

【问题讨论】:

    标签: flutter firebase-storage flutter-dependencies flutter-web


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2021-04-07
      • 1970-01-01
      • 2022-01-17
      • 1970-01-01
      • 1970-01-01
      • 2021-09-18
      • 1970-01-01
      • 2021-04-03
      • 1970-01-01
      相关资源
      最近更新 更多