Dart Html — конвертировать BLOB-объект в файл

Я пытаюсь написать тест для кода dart:html.

У меня есть метод с параметром File (html File, а не io File).

testFile(File file)

Я могу создать Blob с необходимыми данными для файла (минус имя файла, дата и т. д.), но, похоже, нет способа создать объекты File в dart: html, поскольку он зарезервирован для внутреннего использования в html_dartium. .дарт.

factory File._() { throw new UnsupportedError("Not supported"); }

Есть ли другой способ создать объект HTML File?

Я видел упоминание FileReaders, но результатом этого является либо String, либо uint8list.


person sager89    schedule 02.02.2016    source источник


Ответы (2)


После дальнейших исследований я добился того, что искал, со следующим:

  List<String> file_contents = ["test\n"];
  Blob blob = new Blob(file_contents, 'text/plain', 'native');

  FileSystem _filesystem = await window.requestFileSystem(1024 * 1024, persistent: false);
  FileEntry fileEntry = await _filesystem.root.createFile('dart_test.csv');
  FileWriter fw = await fileEntry.createWriter();
  fw.write(blob);
  File file = await fileEntry.file();
person sager89    schedule 03.02.2016

Что-то типа

  Blob response = _downloadRequest.response;
  final FileReader reader = new FileReader();

  reader.onLoad.listen((e) {
        _handleData(reader);
      });
  reader.readAsArrayBuffer(response);

См. раздел Загрузка файла с помощью API Dart GDrive с авторизованным запросом GET.

person Günter Zöchbauer    schedule 03.02.2016
comment
Хотя это тоже может сработать, после некоторых дальнейших исследований я добился того, что искал, с помощью своего ответа. - person sager89; 03.02.2016