flutter - 将图像 FlutterWebImagePicker 输出转换为文件
问题描述
我正在将 Flutter Web 用于 Web 应用程序,并且无法将图像从图像选择器转换为文件以便将其上传到我的服务器。我在 Image.file(xxx) 中显示图像,但出现错误:
尝试加载资产时出错:FormatException: Illegal scheme character (at character 6) Image(image:%20MemoryImage(Uint8List%234267a,%20scale:%201),%20frameBuilder...
这是我正在尝试的代码:
Future getImage(bool isCamera) async {
Image image;
if (isCamera) {
image = await FlutterWebImagePicker.getImage;
} else {
}
var bytes = await rootBundle.load('$image');
String tempPath = (await getTemporaryDirectory()).path;
File file = File('$tempPath/profile.png');
await file.writeAsBytes(
bytes.buffer.asUint8List(bytes.offsetInBytes, bytes.lengthInBytes));
setState(() {
currentSelfie = file;
_accDetails['customer_selfie'] = currentSelfie;
});
}
提前致谢
解决方案
我已经测试了这个包,对结果imagePickerWeb非常满意,它返回 3 种不同的类型,可以是图像(预览小部件)、字节、文件(上传)的形式
那么您可以使用它来获取值
html.File _cloudFile;
var _fileBytes;
Image _imageWidget;
Future<void> getMultipleImageInfos() async {
var mediaData = await ImagePickerWeb.getImageInfo;
String mimeType = mime(Path.basename(mediaData.fileName));
html.File mediaFile =
new html.File(mediaData.data, mediaData.fileName, {'type': mimeType});
if (mediaFile != null) {
setState(() {
_cloudFile = mediaFile;
_fileBytes = mediaData.data;
_imageWidget = Image.memory(mediaData.data);
});
}
推荐阅读
- kentico - Kentico - 在父转发器上显示兄弟文档名称
- amazon-web-services - 我可以在 Spring Boot/Cloud @SqsListener 上设置 AWS 凭证吗?(爪哇)
- python - Python - 打开受密码保护的 CSV 以读取/写入
- python - 使用python如何摆脱从网站上抓取的文本中的尾随空格
- go - 使用 add 运算符连接字符串时,Go 变量转义到堆
- python - 我有一个关于 Python 字母数值计算的问题
- c++ - 为什么在返回类型选项时返回 None
当 T 不是引用时不返回空指针 - c++ - 在 C++ 中计算二项式系数模块素数 p
- rdf - graphDB 规则集(RDFS-Plus)与 Protege(Pellet/Hermit)中“表现力”差异的示例
- c - Cortex M3 的 Keil ARMCC int64 比较