uploadFile method
Future<FileModel?>
uploadFile(
- String fileName,
- String fileType,
- Uint8List fileBytes, {
- bool makeThumbnail = false,
- String usageType = "content",
- String? bucketId,
override
Implementation
@override
Future<FileModel?> uploadFile(String fileName, String fileType, Uint8List fileBytes,
{bool makeThumbnail = false, String usageType = "content", String? bucketId}) async {
try {
await initialize();
bucketId ??= myConfig!.serverConfig.storageConnInfo.bucketId;
fileName = StorageUtils.sanitizeString(StorageUtils.getMD5(fileBytes) + fileName);
late String folderPath;
if (usageType == "content") {
if (fileType.contains("image")) {
folderPath = "content/image/";
} else if (fileType.contains("video")) {
folderPath = "content/video/";
makeThumbnail = true;
} else {
folderPath = "content/etc/";
if (fileType.contains("pdf")) makeThumbnail = true;
}
} else if (usageType == "bookThumbnail") {
folderPath = "book/thumbnail/";
} else if (usageType == "profile") {
folderPath = "profile/";
} else if (usageType == "banner") {
folderPath = "banner/";
} else {
folderPath = "etc/";
}
var file = _storage!.ref().child("$bucketId/$folderPath$fileName");
var alreadyFile = await getFileData(file.fullPath);
if(alreadyFile == null) {
await file.putData(fileBytes);
await file.updateMetadata(SettableMetadata(contentType: fileType));
if (makeThumbnail) await createThumbnail(folderPath, fileName, fileType, bucketId);
return await getFileData(file.fullPath);
}
return alreadyFile;
} catch (error) {
logger.severe("error at Storage.uploadFile >>> $error");
}
return null;
}