在flutter中将“html”类型文件转换为“io”类型文件
Posted
技术标签:
【中文标题】在flutter中将“html”类型文件转换为“io”类型文件【英文标题】:Converting "html" type file into "io" type file in flutter 【发布时间】:2021-01-04 01:55:04 【问题描述】:有什么方法可以将html
类型文件转换为io
类型文件?
出于某种原因,我需要从 html 初始化文件,并且我想转换为 io 类型文件以将其显示在 Image 小部件中,通知 FileImage(_itemPic)
import 'dart:html' as html;
import 'dart:io' as io;
Class AddNewItemView StatefulWidget
..........
html.File _itemPic;
...........
Container(
decoration: BoxDecoration(
image: DecorationImage(
image: _itemPic != null
? FileImage(_itemPic) <<--- Now here I need io type file
: AssetImage(defaultItemimage),
fit: BoxFit.cover,
),
),
),
..........
【问题讨论】:
我不确定这是否可能,这两个对象不共享相同的属性。你真的需要使用FileImage
吗?我觉得你可以改用MemoryImage
。
【参考方案1】:
这可能是一种解决方法。您可以先使用 html 阅读器将其转换为 base64。然后将其解码为 IO 文件。
final reader = html.FileReader();
reader.readAsDataUrl(_itemPic);
reader.onLoad.first.then((res)
final encoded = reader.result as String;
final imageBase64 = encoded.replaceFirst(RegExp(r'data:image/[^;]+;base64,'), '');// this is to remove some non necessary stuff
io.File _itemPicIoFile = io.File.fromRawPath(base64Decode(base64Image));
);
希望这会有所帮助!问候
编辑: 我错过了原帖中的阅读部分。
【讨论】:
以上是关于在flutter中将“html”类型文件转换为“io”类型文件的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Flutter 中将 JSON 转换为对象? [关闭]