TF-2401 Fix cannot upload svg image as signature

Signed-off-by: dab246 <tdvu@linagora.com>
(cherry picked from commit d3fbecbf63900a45d86e60b4b8cfe652ec2b410a)
This commit is contained in:
dab246
2023-12-13 16:24:50 +07:00
committed by Dat H. Pham
parent 1c2d064def
commit 82f42aa805
4 changed files with 32 additions and 14 deletions
@@ -4,7 +4,7 @@ import 'dart:io';
import 'package:core/data/network/dio_client.dart';
import 'package:core/data/utils/compress_file_utils.dart';
import 'package:core/presentation/extensions/html_extension.dart';
import 'package:core/presentation/utils/html_transformer/html_utils.dart';
import 'package:core/utils/app_logger.dart';
import 'package:core/utils/platform_info.dart';
import 'package:dio/dio.dart';
@@ -103,18 +103,11 @@ class DownloadClient {
var mimeType = entryParam['mimeType'];
final cid = entryParam['cid'];
var fileName = entryParam['fileName'];
final base64Data = base64Encode(bytesData);
if (mimeType.endsWith('svg')) {
mimeType = 'image/svg+xml';
}
if (!base64Data.endsWith('==')) {
base64Data.append('==');
}
if (fileName.contains('.')) {
fileName = fileName.split('.').first;
}
final base64Uri = '<img src="data:$mimeType;base64,$base64Data" alt="$fileName" id="cid:$cid" style="max-width: 100%" />';
final base64Uri = '<img src="${HtmlUtils.convertBase64ToImageResourceData(base64Data: base64Data, mimeType: mimeType)}" alt="$fileName" id="cid:$cid" style="max-width: 100%" />';
return base64Uri;
}
}
@@ -1,5 +1,7 @@
import 'package:core/presentation/extensions/html_extension.dart';
import 'package:core/presentation/utils/html_transformer/html_event_action.dart';
import 'package:core/utils/app_logger.dart';
import 'package:core/utils/platform_info.dart';
import 'package:flutter/material.dart';
@@ -122,4 +124,25 @@ class HtmlUtils {
return '';
}
}
static String validateHtmlImageResourceMimeType(String mimeType) {
if (mimeType.endsWith('svg')) {
mimeType = 'image/svg+xml';
}
log('HtmlUtils::validateHtmlImageResourceMimeType:mimeType: $mimeType');
return mimeType;
}
static String convertBase64ToImageResourceData({
required String base64Data,
required String mimeType
}) {
mimeType = validateHtmlImageResourceMimeType(mimeType);
if (!base64Data.endsWith('==')) {
base64Data.append('==');
}
final imageResource = 'data:$mimeType;base64,$base64Data';
log('HtmlUtils::convertBase64ToImageResourceData:imageResource: $imageResource');
return imageResource;
}
}