multipartUpload method
CRUD over List
headers is a map of HTTP headers to send with the request
body is a map of key-value pairs to include in the request body
files is a map of pathName and List of paths to include in the request body
url is the URL to send request
method is the HTTP method to use (e.g. GET, POST, PUT, DELETE)
Example usage:
await RhUtils.instance.multipartUpload(
files: {'avatar': ['/path/to/avatar.jpg', '/path/to/avatar.png']},
url: 'https://example.com/api/users',
method: HttpMethod.post,
);
Implementation
Future<http.StreamedResponse?> multipartUpload({
Map<String, String>? headers,
Map<String, String>? body,
required Map<String, List<String>> files,
required String url,
required String method,
}) async {
http.StreamedResponse? response;
var request = http.MultipartRequest(
method,
Uri.parse(url),
);
if (headers != null) {
request.headers.addAll(headers);
}
if (body != null) {
request.fields.addAll(body);
}
if (files.isNotEmpty) {
files.forEach((pathName, paths) async {
for (var path in paths) {
final multipart = await http.MultipartFile.fromPath(
pathName,
path,
);
request.files.add(multipart);
}
});
response = await request.send();
}
return response;
}