Try our conversational search powered by Generative AI!

Son Do
Jul 20, 2015
  3829
(0 votes)

Exporting media content using DataExporter

I want to export CMS media file and I found that using EPiServer.Enterprise.DataExporter make sense.

In project, create new page with code behind below:

public partial class ExportMedia : System.Web.UI.Page
    {
        private static Injected _tabDefinitionRepository;
        private static Injected _propertyDefinitionRepository;
        private static Injected _contentRepository ;
        private static Injected _categoryRepository;

        protected void Page_Load(object sender, EventArgs e)
        {
            DataExporter exporter = new DataExporter();

            //Get all page references and data
            List startPageReferenceList = new List();
            List startPageDataList = new List();
            ContentFolder rootFolder = _contentRepository.Service.GetChildren(EPiServer.Web.SiteDefinition.Current.GlobalAssetsRoot).FirstOrDefault() as ContentFolder;

            exporter.Frames.AddRange(Frame.List());
            exporter.TabDefinitions.AddRange(_tabDefinitionRepository.Service.List());
            foreach (var propertyDefinition in _propertyDefinitionRepository.Service.ListDynamic())
            {
                exporter.DynamicPropertyDefinitions.Add(propertyDefinition);
            }

            exporter.Categories.AddRange(_categoryRepository.Service.GetRoot().Categories);

            //Set rootFolder to exporter
            ExportSource sourceRoot = new ExportSource(rootFolder.ContentLink, EPiServer.Core.Transfer.ExportSource.RecursiveLevelInfinity);
            exporter.SourceRoots.Add(sourceRoot);

            //property settings
            exporter.ExportPropertySettings = true;
            exporter.IncludeImplicitContentDependencies = true;

            if (Request.QueryString["debug"] != null)
            {
                Response.Clear();
                exporter.Stream = new MemoryStream();
                exporter.Export();
                if (exporter.Log.Errors.Count > 0)
                {
                    foreach (string s in exporter.Log.Errors)
                    {
                        Response.Write(s + "; ");
                    }
                }
                else
                {
                    Response.Write("OK");
                }
            }
            else
            {
                Response.Clear();
                string file = Path.GetTempFileName();
                exporter.Stream = new FileStream(file, FileMode.OpenOrCreate, FileAccess.Write | FileAccess.Read, FileShare.Read);
                exporter.Export();
                exporter.Close();
                if (exporter.Log.Errors.Count > 0)
                {
                    throw new Exception("errors occured,try &debug=true");
                }
                Response.ContentType = "binary/octet-stream";
                Response.AddHeader("Content-disposition", "attachment; filename=MediaContent.episerverdata");
                exporter.Stream.Close();
                Response.WriteFile(file);
            }
            Response.End();
        }
    }

Navigate to this page in browser, we will get export file. And we can use this file to import media content.

Jul 20, 2015

Comments

May 15, 2017 05:10 PM

Please login to comment.
Latest blogs
From Procrastination to Proficiency: Navigating Your Journey to Web Experimentation Certification

Hey there, Optimizely enthusiasts!   Join me in celebrating a milestone – I'm officially a certified web experimentation expert! It's an exhilarati...

Silvio Pacitto | May 17, 2024

GPT-4o Now Available for Optimizely via the AI-Assistant plugin!

I am excited to announce that GPT-4o is now available for Optimizely users through the Epicweb AI-Assistant integration. This means you can leverag...

Luc Gosso (MVP) | May 17, 2024 | Syndicated blog

The downside of being too fast

Today when I was tracking down some changes, I came across this commit comment Who wrote this? Me, almost 5 years ago. I did have a chuckle in my...

Quan Mai | May 17, 2024 | Syndicated blog

Optimizely Forms: Safeguarding Your Data

With the rise of cyber threats and privacy concerns, safeguarding sensitive information has become a top priority for businesses across all...

K Khan | May 16, 2024