private async Task OnAvatarUpload(UploadFile file) { // 示例代码,使用 base64 格式 if (file != null && file.File != null) { var format = file.File.ContentType; if (CheckValidAvatarFormat(format)) { ReadAvatarToken ??= new CancellationTokenSource(); if (ReadAvatarToken.IsCancellationRequested) { ReadAvatarToken.Dispose(); ReadAvatarToken = new CancellationTokenSource(); } await file.RequestBase64ImageFileAsync(format, 640, 480, MaxFileLength, ReadAvatarToken.Token); } else { file.Code = 1; file.Error = "文件格式不正确"; } if (file.Code != 0) { await ToastService.Error("头像上传", $"{file.Error} {format}"); } } }
/// <summary> /// /// </summary> /// <param name="args"></param> /// <returns></returns> protected override async Task OnFileChange(InputFileChangeEventArgs args) { CurrentFile = new UploadFile() { OriginFileName = args.File.Name, Size = args.File.Size, File = args.File, Uploaded = false }; CurrentFile.ValidateId = $"{Id}_{CurrentFile.GetHashCode()}"; if (IsSingle) { // 单图片模式 DefaultFileList?.Clear(); UploadFiles.Clear(); } UploadFiles.Add(CurrentFile); await base.OnFileChange(args); // ValidateFile 后 IsValid 才有值 CurrentFile.IsValid = IsValid; if (OnChange != null) { await OnChange(CurrentFile); } else { await CurrentFile.RequestBase64ImageFileAsync(CurrentFile.File.ContentType, 320, 240); } }