首页 > 解决方案 > AngularDart上传文件转换为base64字符串

问题描述

我正在使用 AngularDart、Angular 5 和 Dart 2。我有一个带有更改操作的文件输入。

<input #inp type="file" id="upload_image" accept="image/*" (change)="handleUpload($event)">

这是我的句柄上传。

Future<void> handleUpload(html.Event e) async {
    e.preventDefault();
    picfile = (e.target as html.FileUploadInputElement).files[0];

}

我希望能够获取 html.File 对象并将其转换为 io.File 对象,以便我可以对其进行 base64 编码并将其以 JSON 格式传递给我的服务器。我在我的 Flutter 应用程序中做了类似的事情。不知道我错过了什么,但似乎没有什么能让 html.File 对象成为 io.File 对象。

任何帮助将不胜感激。

标签: angular-dart

解决方案


import 'dart:html';
...

var blob = e.target as html.FileUploadInputElement).files[0];
var reader = new FileReader()..readAsArrayBuffer(blob);
await reader.onLoadEnd.first;
List<int> /* or Uint8List */ result = reader.result;
print(result);

在这里您应该能够进行 base64 编码(https://stackoverflow.com/a/36529793/217408


推荐阅读