uploadImageList method

Future<Response> uploadImageList(
  1. List? files,
  2. List<Uint8List> fileBytesList, {
  3. required int createdBy,
  4. required int fileTypeId,
  5. required int moduleId,
})

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: ''),
    );
  }
}