Hi there! This blog post was published over 18 months ago. A lot can change in that time, so some of the information might now be outdated. It’s worth verifying the details or checking for newer updates.
Uploading a file into Umbraco 8 has changed slightly, using the code below as found on the Umbraco Help Forums, worked for me:
Now you need the IContentTypeBaseServiceProvider and a Stream.
// Umbraco 8 using Umbraco.Core; <- Important.. // Needed Interfaces IMediaService _mediaService; IContentTypeBaseServiceProvider _contentTypeBaseServiceProvider; // The new way to do it. IMedia media = _mediaService.CreateMediaWithIdentity("Filename", 1234, "File"); media.SetValue(_contentTypeBaseServiceProvider, "umbracoFile", "FilenameWithExtension", Stream); _mediaService.Save(media);
Byte[]
byte[] byteArray; using (Stream stream = new MemoryStream(byteArray)) { media.SetValue(_contentTypeBaseServiceProvider, "umbracoFile", "FilenameWithExtension", stream); }
HttpPostedFileBase
HttpPostedFileBase httpPostedFileBase; media.SetValue(_contentTypeBaseServiceProvider, "umbracoFile", httpPostedFileBase.FileName, httpPostedFileBase.InputStream);
Thanks to Bo Jacobsen for sharing the solution!
About the author
Aaron Sadler
Aaron Sadler, Umbraco MVP (2x), Umbraco Certified Master Developer and DevOps Engineer