Я пишу приложение, которое загружает изображение на сервер, и вместо того, чтобы просто показывать счетчик, я хотел бы получить возможность отслеживать состояние этой загрузки.
Кроме того, я хочу сделать это без использования данных формы Multipart.Это код, который я сейчас использую - но, похоже, он зависает из-за разорванного канала, и у меня нет нулевой обратной связи относительно того, отправляются ли данные на сервер:
Future<String> _uploadFile(File assetFile) async {
final url = <removed>;
final stream = await assetFile.openRead();
int length = assetFile.lengthSync();
final client = new HttpClient();
final request = await client.postUrl(Uri.parse(url));
request.headers.add(HttpHeaders.CONTENT_TYPE, "application/octet-stream");
request.contentLength = length;
await request.addStream(stream);
final response = await request.close();
// response prociessing.
}
Возможно ли этоотправлять большие данные в виде потока, не считывая их в память, и могу ли я получить прогресс в этой загрузке с текущими API дротика / флаттера?