Файл загрузки AngularDart преобразовать в строку base64 - PullRequest
0 голосов
/ 06 июля 2018

Я использую 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.

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 06 июля 2018
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)

...