public async Task UpdateProfilePicture(UpdateProfilePictureInput input) { var tempProfilePicturePath = Path.Combine(_appFolders.TempFileDownloadFolder, input.FileName); byte[] byteArray; using (var fsTempProfilePicture = new FileStream(tempProfilePicturePath, FileMode.Open)) { using (var bmpImage = new Bitmap(fsTempProfilePicture)) { var width = input.Width == 0 ? bmpImage.Width : input.Width; var height = input.Height == 0 ? bmpImage.Height : input.Height; var bmCrop = bmpImage.Clone(new Rectangle(input.X, input.Y, width, height), bmpImage.PixelFormat); using (var stream = new MemoryStream()) { bmCrop.Save(stream, bmpImage.RawFormat); stream.Close(); byteArray = stream.ToArray(); } } } if (byteArray.LongLength > 102400) //100 KB { throw new UserFriendlyException(L("ResizedProfilePicture_Warn_SizeLimit")); } var user = await UserManager.GetUserByIdAsync(AbpSession.GetUserId()); if (user.ProfilePictureId.HasValue) { await _binaryObjectManager.DeleteAsync(user.ProfilePictureId.Value); } var storedFile = new BinaryObject(AbpSession.TenantId, byteArray); await _binaryObjectManager.SaveAsync(storedFile); user.ProfilePictureId = storedFile.Id; FileHelper.DeleteIfExists(tempProfilePicturePath); }
public async Task UpdateProfilePicture(UpdateProfilePictureInput input) { byte[] byteArray; var imageBytes = _tempFileCacheManager.GetFile(input.FileToken); if (imageBytes == null) { throw new UserFriendlyException("There is no such image file with the token: " + input.FileToken); } using (var bmpImage = new Bitmap(new MemoryStream(imageBytes))) { var width = (input.Width == 0 || input.Width > bmpImage.Width) ? bmpImage.Width : input.Width; var height = (input.Height == 0 || input.Height > bmpImage.Height) ? bmpImage.Height : input.Height; var bmCrop = bmpImage.Clone(new Rectangle(input.X, input.Y, width, height), bmpImage.PixelFormat); using (var stream = new MemoryStream()) { bmCrop.Save(stream, bmpImage.RawFormat); byteArray = stream.ToArray(); } } if (byteArray.Length > MaxProfilPictureBytes) { throw new UserFriendlyException(L("ResizedProfilePicture_Warn_SizeLimit", AppConsts.ResizedMaxProfilPictureBytesUserFriendlyValue)); } var user = await UserManager.GetUserByIdAsync(AbpSession.GetUserId()); if (user.ProfilePictureId.HasValue) { await _binaryObjectManager.DeleteAsync(user.ProfilePictureId.Value); } var storedFile = new BinaryObject(AbpSession.TenantId, byteArray); await _binaryObjectManager.SaveAsync(storedFile); user.ProfilePictureId = storedFile.Id; }
public async Task UploadPortrait(UpdateProfilePictureInput input) { var byteArray = Convert.FromBase64String(input.ImgData); if (byteArray.LongLength > 102400) //100 KB { throw new UserFriendlyException(L("ResizedProfilePicture_Warn_SizeLimit")); } var user = await UserManager.GetUserByIdAsync(AbpSession.GetUserId()); if (user.ProfilePictureId.HasValue) { await _binaryObjectManager.DeleteAsync(user.ProfilePictureId.Value); } var storedFile = new BinaryObject(AbpSession.TenantId, byteArray); await _binaryObjectManager.SaveAsync(storedFile); user.ProfilePictureId = storedFile.Id; }
public async Task UpdateProfilePicture(UpdateProfilePictureInput input) { await ApiClient.PutAsync(GetEndpoint(nameof(UpdateProfilePicture)), input); }