【发布时间】:2021-08-11 09:38:56
【问题描述】:
我在flutter web 上使用firebase_storage: ^8.0.6 包。我想将图像上传到使用 FilePicker 包获得的 Firebase 存储。
问题是新包使用 putFile() 方法来上传文件。但是来自 dart:io 的 File 在 Flutter Web 上不起作用,它也不接受来自 dart:html 的 File 对象。
我可以使用 putBlob() 方法将图像上传为 Blob,但它不会将其上传为图像类型,但它的类型是 application/octet-stream。我不想将图像文件作为 blob 上传。
Future<String> uploadImage(PlatformFile file) async {
try {
TaskSnapshot upload = await FirebaseStorage.instance
.ref(
'events/${file.name}-${DateTime.now().toIso8601String()}.${file.extension}')
.putBlob(Blob(file.bytes));
String url = await upload.ref.getDownloadURL();
return url;
} catch (e) {
print('error in uploading image for : ${e.toString()}');
return ';
}
}
如何解决这个问题?
【问题讨论】:
-
@DarShan 这个问题使用了 put,我使用的是 putFile,它接受来自 dart 而不是来自universal_html 的文件。
标签: flutter firebase-storage flutter-web