AngularDart上传文件转换为base64字符串

时间:2018-07-06 09:45:01

标签: angular-dart

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

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

这是我的handleUpload。

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对象。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

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