/// <summary> /// 上传文件到缓存中 /// </summary> /// <param name="file"></param> /// <returns></returns> public async Task <FileUploadOutputDto> UploadTempFile(IFormFile file) { await Task.Yield(); //Check input if (file == null) { throw new Exception("File empty"); } if (file.Length > AppConsts.MaxFileSize) { throw new Exception("File cannot be larger than 50mb"); } byte[] fileBytes; using (var stream = file.OpenReadStream()) { fileBytes = stream.GetAllBytes(); } var tenantId = AbpSession.TenantId; var storedFile = new DataFileObject(tenantId, fileBytes.ToArray()); _tempFileCacheManager.SetFile(storedFile.Id.ToString(), fileBytes.ToArray()); return(new FileUploadOutputDto { FileName = file.FileName, FileToken = storedFile.Id.ToString(), FileSize = file.Length }); }
/// <summary> /// 上传文件到数据库中 /// </summary> /// <param name="file"></param> /// <returns></returns> public async Task <FileUploadOutputDto> UploadFileToData(IFormFile file) { //Check input if (file == null) { throw new Exception("File empty"); } if (file.Length > AppConsts.MaxFileSize) { throw new Exception("File cannot be larger than 50mb"); } byte[] fileBytes; using (var stream = file.OpenReadStream()) { fileBytes = stream.GetAllBytes(); } var tenantId = AbpSession.TenantId; var fileObject = new DataFileObject(tenantId, fileBytes); await _dataFileObjectManager.SaveAsync(fileObject); return(new FileUploadOutputDto { FileName = file.FileName, FileToken = fileObject.Id.ToString(), FileSize = file.Length }); }
public async Task <UploadProfilePictureOutputDto> UploadProfilePictureReturnFileId() { try { var profilePictureFile = Request.Form.Files.First(); //Check input if (profilePictureFile == null) { throw new UserFriendlyException(L("ProfilePicture_Change_Error")); } if (profilePictureFile.Length > MaxProfilePictureSize) { throw new UserFriendlyException(L("ProfilePicture_Warn_SizeLimit", AppConsts.MaxProfilePictureBytesUserFriendlyValue)); } byte[] fileBytes; using (var stream = profilePictureFile.OpenReadStream()) { fileBytes = stream.GetAllBytes(); } if (!ImageFormatHelper.GetRawImageFormat(fileBytes).IsIn(ImageFormat.Jpeg, ImageFormat.Png, ImageFormat.Gif)) { throw new UserFriendlyException(L("ProfilePicture_Change_Info", AppConsts.MaxProfilePictureBytesUserFriendlyValue)); } var storedFile = new DataFileObject(AbpSession.TenantId, fileBytes.ToArray()); await _dataFileObjectManager.SaveAsync(storedFile); return(new UploadProfilePictureOutputDto { FileName = profilePictureFile.FileName, ProfilePictureId = storedFile.Id }); } catch (UserFriendlyException ex) { return(new UploadProfilePictureOutputDto(new ErrorInfo(ex.Message))); } }
public async Task UpdateProfilePictureAsync(UpdateProfilePictureInput input) { byte[] byteArray; var imageBytes = _dataTempFileCacheManager.GetFile(input.FileToken); if (imageBytes == null) { throw new UserFriendlyException("没有找到符合这个图片的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 _dataFileObjectManager.DeleteAsync(user.ProfilePictureId.Value); } var storedFile = new DataFileObject(AbpSession.TenantId, byteArray); await _dataFileObjectManager.SaveAsync(storedFile); user.ProfilePictureId = storedFile.Id; }
public async Task <JsonResult> ImportFromExcel() { try { var file = Request.Form.Files.First(); if (file == null) { throw new UserFriendlyException(L("File_Empty_Error")); } if (file.Length > 1048576 * 100) //100 MB { throw new UserFriendlyException(L("File_SizeLimit_Error")); } byte[] fileBytes; using (var stream = file.OpenReadStream()) { fileBytes = stream.GetAllBytes(); } var tenantId = AbpSession.TenantId; var fileObject = new DataFileObject(tenantId, fileBytes); await _dataFileObjectManager.SaveAsync(fileObject); await BackgroundJobManager.EnqueueAsync <ImportUsersToExcelJob, ImportUsersFromExcelJobArgs>(new ImportUsersFromExcelJobArgs { TenantId = tenantId, BinaryObjectId = fileObject.Id, User = AbpSession.ToUserIdentifier() }); return(Json(new AjaxResponse(new { }))); } catch (UserFriendlyException ex) { return(Json(new AjaxResponse(new ErrorInfo(ex.Message)))); } }
private async Task <User> RegisterExternalUserAsync(ExternalAuthUserInfo externalUser) { var user = await _userRegistrationManager.RegisterAsync( externalUser.Name, externalUser.EmailAddress, externalUser.EmailAddress, UserManagerment.Users.User.CreateRandomPassword(), true ); if (Uri.TryCreate(externalUser.AvatarUrl, UriKind.Absolute, out var uri)) { using (var httpClient = new HttpClient()) { var avatarBytes = await httpClient.GetByteArrayAsync(uri); var storedFile = new DataFileObject(AbpSession.TenantId, avatarBytes); await _dataFileObjectManager.SaveAsync(storedFile); user.ProfilePictureId = storedFile.Id; } } user.Logins = new List <UserLogin> { new UserLogin { LoginProvider = externalUser.Provider, ProviderKey = externalUser.ProviderKey, TenantId = user.TenantId } }; await CurrentUnitOfWork.SaveChangesAsync(); return(user); }
public void SetFile(string token, DataFileObject content) { _cacheManager.GetCache(TempFileCacheName).Set(token, content, new TimeSpan(0, 0, 1, 0));//默认过期时间为1分钟 }