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 = bucketId.isEmpty ? myConfig!.serverConfig!.storageConnInfo.bucketId : bucketId;
fileName = fileName.replaceAll(RegExp(r'[^a-zA-Z0-9가-힣.]'), "_");
String folderName = "";
if (usageType == "content") {
if (fileType.contains("image")) {
folderName = "$usageType/image/";
} else if (fileType.contains("video")) {
makeThumbnail = true;
folderName = "$usageType/video/";
} else {
if (fileType.contains("pdf")) makeThumbnail = true;
folderName = "$usageType/etc/";
}
} else if (usageType == "profile") {
folderName = "profile/";
} else if (usageType == "banner") {
folderName = "banner/";
} else if (usageType == "bookThumbnail") {
folderName = "book/thumbnail/";
}
var target = _storage!.ref().child("$bucketId/$folderName$fileName");
var uploadFile = await getFileData(target.fullPath);
if (uploadFile != null) {
if (uploadFile.thumbnailUrl == "" && makeThumbnail) {
await createThumbnail(folderName, fileName, fileType, bucketId);
return await getFileData(uploadFile.id);
}
return uploadFile;
} else {
await target.putData(fileBytes);
await target.updateMetadata(SettableMetadata(contentType: fileType));
if (makeThumbnail) {
await createThumbnail(folderName, fileName, fileType, bucketId);
}
return await getFileData(target.fullPath);
}
} catch (error) {
logger.severe("error during Storage.uplaodFile >> $error");
}
return null;
}