如何将 Base64 字符串保存到文件并使用 Flutter 查看它



我需要使用 Flutter 下载和查看文件(如果可能的话,用于图像、PDF 等(。 我的问题是,我要下载的文件是 Base64 字符串。 我如何使用 Flutter 实现这一点?

以下是解码 base64 字符串并将其另存为本地设备上的文件的代码片段。 请注意,在查看文件方面,图像和PDF需要不同的库。

Future<String> _createFileFromString() async {
final encodedStr = "put base64 encoded string here";
Uint8List bytes = base64.decode(encodedStr);
String dir = (await getApplicationDocumentsDirectory()).path;
File file = File(
"$dir/" + DateTime.now().millisecondsSinceEpoch.toString() + ".pdf");
await file.writeAsBytes(bytes);
return file.path;
}

Google Chrome 不允许打开带有 Url base64 编码的选项卡,例如"data:application/pdf;base64,JVBERi0xLjQKJeLj...",所以你不能用url_launcher打开URL,但你可以下载文件。

这是我的代码:

import 'dart:html' as html;
...
Future<void> downloadFile() {
final urlString = "data:application/pdf;base64,JVBERi0xLjQKJeLj...";
html.AnchorElement anchorElement = html.AnchorElement(href:urlString);
anchorElement.download = urlString;
anchorElement.click();
}

最新更新