public Element ReadNextElement() { if (_atEof || ReadBoundary()) { return(null); } var elem = new Element(); string header; while ((header = ReadHeaders()) != null) { if (StrUtils.StartsWith(header, "Content-Disposition:", true)) { elem.Name = GetContentDispositionAttribute(header, "name"); elem.Filename = StripPath(GetContentDispositionAttributeWithEncoding(header, "filename")); } else if (StrUtils.StartsWith(header, "Content-Type:", true)) { elem.ContentType = header.Substring("Content-Type:".Length).Trim(); } } var start = data.Position; elem.Start = start; var pos = MoveToNextBoundary(); if (pos == -1) { return(null); } elem.Length = pos - start; return(elem); }