将base64转换为图像并将其保存在临时文件夹flutter中

BeH*_*ppy 5 base64 caching dart flutter

我有像/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA0JCgsKCA0LCgsODg0PEyAVExISEyccHhcgLikxMC4pLSwzOko+MzZGNywtQFdBRkxOUlNSMj5aYVpQYEpRUk//....的 Base64 图像字符串。

我想要做的是将这个图像保存在临时文件夹中,并使用该文件地址在我的应用程序中显示图像。

我怎样才能做到这一点?

Dip*_* KC 13

import 'package:path_provider/path_provider.dart' as syspaths;
Run Code Online (Sandbox Code Playgroud)

将您的 Base64 字符串解码为内存中的字节。

Uint8List bytes = base64.decode(base64String);
Run Code Online (Sandbox Code Playgroud)

创建一个临时目录并在该目录上创建文件

final appDir = await syspaths.getTemporaryDirectory();
File file = File('${appDir.path}/sth.jpg');
Run Code Online (Sandbox Code Playgroud)

将转换后的字节写入文件

await file.writeAsBytes(bytes)
Run Code Online (Sandbox Code Playgroud)

那么我们就可以

Image.file(file);
Run Code Online (Sandbox Code Playgroud)

或者另一种选择

将您的 Base64 字符串解码为内存中的字节。

Uint8List bytes = base64.decode(base64String);
Run Code Online (Sandbox Code Playgroud)

那么我们就可以

Image.memory(bytes)
Run Code Online (Sandbox Code Playgroud)