@@ -20,20 +20,35 @@ extension MultipartRequestCopyWith on MultipartRequest {
20
20
..headers.addAll (headers ?? this .headers)
21
21
..fields.addAll (fields ?? this .fields);
22
22
23
- for (var file in this .files) {
24
- clonedRequest.files.add (MultipartFile (
25
- file.field,
26
- file.finalize (),
27
- file.length,
28
- filename: file.filename,
29
- contentType: file.contentType,
30
- ));
23
+ // Copy files from original request if no new files provided
24
+ if (files == null ) {
25
+ for (var file in this .files) {
26
+ clonedRequest.files.add (MultipartFile (
27
+ file.field,
28
+ file.finalize (),
29
+ file.length,
30
+ filename: file.filename,
31
+ contentType: file.contentType,
32
+ ));
33
+ }
34
+ } else {
35
+ // Use the provided files
36
+ for (var file in files) {
37
+ clonedRequest.files.add (MultipartFile (
38
+ file.field,
39
+ file.finalize (),
40
+ file.length,
41
+ filename: file.filename,
42
+ contentType: file.contentType,
43
+ ));
44
+ }
31
45
}
32
46
33
- this .persistentConnection =
47
+ // Set properties on the cloned request, not the original
48
+ clonedRequest.persistentConnection =
34
49
persistentConnection ?? this .persistentConnection;
35
- this .followRedirects = followRedirects ?? this .followRedirects;
36
- this .maxRedirects = maxRedirects ?? this .maxRedirects;
50
+ clonedRequest .followRedirects = followRedirects ?? this .followRedirects;
51
+ clonedRequest .maxRedirects = maxRedirects ?? this .maxRedirects;
37
52
38
53
return clonedRequest;
39
54
}
0 commit comments