将图像上传到 Firebase 存储而不是文件

时间:2021-03-08 11:10:06

标签: flutter dart firebase-storage

有很多关于上传 dart:io 'File' 的参考资料,但我想上传一个 material.dart 图像到 firebase。

我的图像来自处理过的视频缩略图,而不仅仅是由图像选择器挑选的。

这就是我生成缩略图的方式,

Future<ThumbnailResult> genThumbnail(url) async {
    //WidgetsFlutterBinding.ensureInitialized();
    Uint8List bytes;
    final Completer<ThumbnailResult> completer = Completer();
      bytes = await VideoThumbnail.thumbnailData(
          video: url,
          imageFormat: ImageFormat.JPEG,
          maxHeight: 250,
          maxWidth: 300,
          timeMs: 0,
          quality: 0);

    int _imageDataSize = bytes.length;
    print("image size: $_imageDataSize");

    final _image = Image.memory(bytes);
    //final _file =File.fromRawPath(bytes);

    _image.image
        .resolve(ImageConfiguration())
        .addListener(ImageStreamListener((ImageInfo info, bool _) {
      completer.complete(ThumbnailResult(
        image: _image,
        dataSize: _imageDataSize,
        height: info.image.height,
        width: info.image.width,
      ));
    }));
    return completer.future;
  }

这就是文件上传到 firebase 的方式

String Thumbfileurl = await uploadFile(thumbResult.image, fileName, fileType);

在uploadFile()里面

final StorageUploadTask uploadTask = storageReference.putFile(file);

如您所见,需要一个文件,但我有一个图像,有没有办法将图像转换为文件,或者是否有任何解决方法来实现这一点。

0 个答案:

没有答案