gpt4 book ai didi

image - 如何将图像从 flutter 中的 Assets 上传到 Firebase 存储?

转载 作者:行者123 更新时间:2023-12-03 21:53:49 25 4
gpt4 key购买 nike

我正在使用以下代码从图库中选择图像以上传到 Flutter 应用程序中的 Firebase 存储,但我希望如果用户未选择图像,则应将 Assets 中的默认图像上传到 Firebase 存储。我应该为要从 Assets 中选择的图像编写什么代码并将其设置为等于 File avatarImageFile以便它可以在flutter应用程序中上传到Firebase存储

File avatarImageFile;
Future getImage() async {
File image = await ImagePicker.pickImage(source: ImageSource.gallery);

if (image != null) {
setState(() {
avatarImageFile = image;
isLoading = true;
});
}

uploadFile();
}

最佳答案

您可以将 Assets 图像转换为文件,然后上传到 Firebase!
这是要转换的代码:

import 'dart:async';
import 'dart:io';

import 'package:flutter/services.dart' show rootBundle;
import 'package:path_provider/path_provider.dart';

Future<File> getImageFileFromAssets(String path) async {
final byteData = await rootBundle.load('assets/$path');

final file = File('${(await getTemporaryDirectory()).path}/$path');
await file.writeAsBytes(byteData.buffer.asUint8List(byteData.offsetInBytes, byteData.lengthInBytes));

return file;
}

在您的示例中,您可以这样调用此函数:
File f = await getImageFileFromAssets('images/myImage.jpg');
并编辑您的代码:
File avatarImageFile;

Future getImage() async {
File f = await getImageFileFromAssets('path of your asset Image');
File image = await ImagePicker.pickImage(source: ImageSource.gallery);


if (image != null) {
setState(() {
avatarImageFile = image;
isLoading = true;
});
}else{
avatarImageFile = f;
isLoading = true;
}

uploadFile();
}

关于image - 如何将图像从 flutter 中的 Assets 上传到 Firebase 存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62253798/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com