我正在使用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对象。
任何帮助将不胜感激。
答案 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)