无法从颤振网络将图像上传到 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 数据库? - 颤振
无法使用 Flutter Web 的 image_picker 将文件上传到 Firebase 存储