有很多关于上传 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);
如您所见,需要一个文件,但我有一个图像,有没有办法将图像转换为文件,或者是否有任何解决方法来实现这一点。