From e00f337effd40f12aabf3d732e43e114830da726 Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Thu, 21 Sep 2023 17:25:02 -0700 Subject: [PATCH] Fix dart SDK not uploading correct length of chunks The chunk length is supposed to be equal to CHUNK_SIZE or whatever is left for the file, but the - 1 for the end made the chunk 1 less than the correct length (due to the way getRange works). --- templates/dart/lib/src/client_browser.dart.twig | 2 +- templates/dart/lib/src/client_io.dart.twig | 2 +- templates/flutter/lib/src/client_browser.dart.twig | 2 +- templates/flutter/lib/src/client_io.dart.twig | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/templates/dart/lib/src/client_browser.dart.twig b/templates/dart/lib/src/client_browser.dart.twig index 652bd5059..c386af787 100644 --- a/templates/dart/lib/src/client_browser.dart.twig +++ b/templates/dart/lib/src/client_browser.dart.twig @@ -120,7 +120,7 @@ class ClientBrowser extends ClientBase with ClientMixin { while (offset < size) { var chunk; - final end = min(offset + CHUNK_SIZE - 1, size - 1); + final end = min(offset + CHUNK_SIZE, size); chunk = file.bytes!.getRange(offset, end).toList(); params[paramName] = http.MultipartFile.fromBytes(paramName, chunk, filename: file.filename); diff --git a/templates/dart/lib/src/client_io.dart.twig b/templates/dart/lib/src/client_io.dart.twig index 1657d040a..bcacd2895 100644 --- a/templates/dart/lib/src/client_io.dart.twig +++ b/templates/dart/lib/src/client_io.dart.twig @@ -156,7 +156,7 @@ class ClientIO extends ClientBase with ClientMixin { while (offset < size) { List chunk = []; if (file.bytes != null) { - final end = min(offset + CHUNK_SIZE - 1, size - 1); + final end = min(offset + CHUNK_SIZE, size); chunk = file.bytes!.getRange(offset, end).toList(); } else { raf!.setPositionSync(offset); diff --git a/templates/flutter/lib/src/client_browser.dart.twig b/templates/flutter/lib/src/client_browser.dart.twig index 442a2fb02..52132bb9f 100644 --- a/templates/flutter/lib/src/client_browser.dart.twig +++ b/templates/flutter/lib/src/client_browser.dart.twig @@ -149,7 +149,7 @@ class ClientBrowser extends ClientBase with ClientMixin { while (offset < size) { var chunk; - final end = min(offset + CHUNK_SIZE - 1, size - 1); + final end = min(offset + CHUNK_SIZE, size); chunk = file.bytes!.getRange(offset, end).toList(); params[paramName] = http.MultipartFile.fromBytes(paramName, chunk, filename: file.filename); diff --git a/templates/flutter/lib/src/client_io.dart.twig b/templates/flutter/lib/src/client_io.dart.twig index 4d17e99cb..585750759 100644 --- a/templates/flutter/lib/src/client_io.dart.twig +++ b/templates/flutter/lib/src/client_io.dart.twig @@ -276,7 +276,7 @@ class ClientIO extends ClientBase with ClientMixin { while (offset < size) { List chunk = []; if (file.bytes != null) { - final end = min(offset + CHUNK_SIZE - 1, size - 1); + final end = min(offset + CHUNK_SIZE, size); chunk = file.bytes!.getRange(offset, end).toList(); } else { raf!.setPositionSync(offset);