uploadImageList method
Implementation
Future<Response> uploadImageList(
List<dynamic>? files, List<Uint8List> fileBytesList, {required int createdBy, required int fileTypeId, required int moduleId}) async {
try {
if (files == null || files.isEmpty) {
print('No files to upload.');
}
final List<ImageDetails> imageList = [];
for (int i = 0; i < files!.length; i++) {
var file = files[i];
Uint8List fileBytes = fileBytesList[i];
String fileExtension = 'png'; // Default extension
String fileName = 'image_${DateTime.now().millisecondsSinceEpoch}';
if (!kIsWeb && file is File) {
fileExtension = file.path.split('.').last.toLowerCase();
fileName = file.path.split('/').last.split('.').first;
}
String base64String = base64Encode(fileBytes);
imageList.add(
ImageDetails(
createdBy: createdBy,
documentDesc: fileName,
extension: fileExtension,
fileData: base64String,
fileTypeId: fileTypeId,
moduleId: moduleId.toString(),
isNeedToUpload: true,
),
);
}
final AddImageModel addImageModel =
AddImageModel(tblDocumentDetailsTOList: imageList);
final Map<String, dynamic> params = addImageModel.toJson();
final response = await _apiClient.client.post(
AppUrls.uploadFiles,
data: jsonEncode(params),
);
if (response.statusCode == 200 && response.data != null) {
print('Image Upload Successful: ${response.data}');
return response;
} else {
print('Image Upload Failed: ${response.statusCode}');
return response;
}
} catch (error) {
print('Image Upload Error: $error');
return Response(
statusCode: 500,
requestOptions: RequestOptions(path: ''),
);
}
}