var streamProvider = new MultipartMemoryStreamProvider(); streamProvider = await Request.Content.ReadAsMultipartAsync(streamProvider); foreach ( var item in streamProvider.Contents.Where(c => !string.IsNullOrEmpty(c.Headers.ContentDisposition.FileName)) ) { using (Stream stFileSource = new MemoryStream(await item.ReadAsByteArrayAsync())) { byte[] fileBytes; fileBytes = new Byte[stFileSource.Length]; stFileSource.Read(fileBytes, 0, Convert.ToInt32(stFileSource.Length)); FileUploadResult file = new FileUploadResult() { FileName = item.Headers.ContentDisposition.FileName, Content = fileBytes, Key = Guid.NewGuid().ToString() };and in my FileUploadResult I added string property Type which I'd like to somehow discover from either content or extension (e.g. Image, PDF, Document, Excel - I think I limited my front-end to only those types).