Dart Language: получить файл с POST и распечатать его содержимое на сервере

Я хотел бы знать, как приложение на стороне сервера может получить файл (через POST), а затем распечатать его содержимое на стороне сервера.

Самый актуальный вопрос, связанный с этим, был следующий: Дарт, как загрузить изображение

Но это больше не работает (Uncaught Error: тип 'String' не является подтипом типа 'HttpBodyFileUpload' для 'fileUploaded').

РЕДАКТИРОВАТЬ:

Вот как я отправляю файл (этот метод работает нормально):

import 'dart:html';
import 'dart:async';

HttpRequest request = new HttpRequest();
final _HOST = "127.0.0.1", _PORT = 8123;

Future sendFile(File file) {
    var completer = new Completer(); // No need for a Completer. It will be removed.
    Uri uri = new Uri(host: _HOST, port: _PORT);
    request.open("POST", uri.toString());
    var filename = file.name;
    final FormData formData = new FormData();
    formData.append('file', filename);
    request.onLoadEnd.listen((_) {
        completer.complete(request.response);
    });
    request.send(formData);
    return completer.future;
}

На стороне сервера (я застрял здесь):

void _handlePost(HttpRequest req) {
    HttpBodyHandler.processRequest(req).then((body) {
        HttpBodyFileUpload fileUploaded = body.body['file'];
        print(fileUploaded.content);
    });
}

1 ответ

Решение

Вы добавляете имя файла вместо Blob (File) в свой FormData объект. В Dart, похоже, есть специальная функция для добавления больших двоичных объектов, которая называется appendBlob(name, blob, [filename]),

Другие вопросы по тегам