/// <summary> /// Method to save image of base64 - SS /// </summary> /// <param name="fileDetail">base64 images and folder name</param> /// <returns>list of file path</returns> public List <string> UploadBlobDataAsync(Base64ImageType fileDetail) { List <string> filePaths = new List <string>(); var uploadFolder = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "Image-Storage"); var foldersInDirectory = Directory.GetDirectories(uploadFolder).ToList(); if (!foldersInDirectory.Any(x => x == fileDetail.FolderName)) { Directory.CreateDirectory(Path.Combine(uploadFolder, fileDetail.FolderName)); Directory.CreateDirectory(Path.Combine(uploadFolder, fileDetail.FolderName, fileDetail.SubFolderName)); } else { var subFoldersInDirectory = Directory.GetDirectories(Path.Combine(uploadFolder, fileDetail.FolderName)).ToList(); if (!subFoldersInDirectory.Any(x => x == fileDetail.SubFolderName)) { Directory.CreateDirectory(Path.Combine(uploadFolder, fileDetail.FolderName, fileDetail.SubFolderName)); } } foreach (var file in fileDetail.Images) { if (!string.IsNullOrEmpty(file)) { filePaths.Add(ConvertBase64ToImageAndSave(file, fileDetail.FolderName, fileDetail.SubFolderName)); } } return(filePaths); }
/// <summary> /// 获取Base64字符串前缀 /// </summary> /// <param name="type">图片类型</param> /// <returns></returns> private string GetBase64StringPrefix(Base64ImageType type) { switch (type) { case Base64ImageType.Gif: return("data:image/gif;base64,"); case Base64ImageType.Jpeg: return("data:image/jpeg;base64,"); case Base64ImageType.Png: return("data:image/png;base64,"); case Base64ImageType.XIcon: return("data:image/x-icon;base64,"); } throw new NotImplementedException($"未知图片类型 : {type}"); }
/// <summary> /// 转换成Base64字符串,并附带前缀 /// </summary> /// <param name="type">图片类型</param> /// <returns></returns> public string ToBase64String(Base64ImageType type) => $"{GetBase64StringPrefix(type)}{ToBase64String()}";
/// <summary> /// 转换成Base64字符串,并附带前缀 /// </summary> /// <param name="type">图片类型</param> /// <returns></returns> public string ToBase64String(Base64ImageType type) { return($"{GetBase64StringPrefix(type)}{ToBase64String()}"); }
public Base64Image(Base64ImageType type, string data) { Type = type; Data = data; }