public bool IsValid() { if (RawFile != null) { Filename = Filename ?? RawFile.FileName; using (var stream = new MemoryStream()) { RawFile.CopyTo(stream); FileBytes = stream.ToArray(); var data = Convert.ToBase64String(FileBytes); var index = data.LastIndexOf("base64", StringComparison.Ordinal); Data = index == -1 ? data : data.Substring(index + 7); } } if (string.IsNullOrEmpty(FileType)) { if (!string.IsNullOrEmpty(Filename)) { FileType = Path.GetExtension(Filename).ToLower(); } if (string.IsNullOrEmpty(FileType)) { var match = Regex.Match(Data, "data:(.*?);"); if (!match.Success) { return(false); } FileType = match.Groups[1].Value; } } if (string.IsNullOrEmpty(FileType)) { return(false); } return(true); }