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])
,