从umbraco CMS Media导出/导入文件

时间:2013-05-09 11:13:31

标签: c# umbraco umbraco5 umbraco-blog umbraco-contour

因为我需要将所有媒体文件从umbraco v 4.5.2导出到umbraco v 6.0.5,

我们可以通过哪种方式或类似的方式来做同样的事情。

1 个答案:

答案 0 :(得分:2)

您可以使用CmsImport包(http://our.umbraco.org/projects/developer-tools/cmsimport)批量导入内容。因此,如果您创建了引用所有站点映像的文件,则可以在新安装的内容节点下导入它们。

这是围绕媒体图像运行的一些示例剃刀代码,因此您可以列出它们:

@using umbraco.cms.businesslogic.media;
@using uComponents.Core;
@using uComponents.Core.uQueryExtensions;
@using System
@{
  // Set default media root node id
  int rootNodeId = -1;

  // Get media node and iterate the children
  var m = new Media(rootNodeId);
  var imagesAndFolders = m.GetChildMedia();
  var sortedList = m.GetChildMedia().OrderBy(y => y.Text).OrderBy(x => x.ContentType.Alias);

        @{
          foreach (var c in sortedList)
          {
            var type = c.ContentType.Alias;
            switch (type)
            {
            case "Folder":
                //drill into folder
                break;
            default:
                var filePath = c.GetPropertyAsString("umbracoFile");
                var thumbPath = c.GetPropertyAsString("umbracoFile").Replace(".","_thumb.");
                var width = c.GetPropertyAsString("umbracoWidth");
                var height = c.GetPropertyAsString("umbracoHeight");

                  //allowing you to build a table of images

                  <a href="@filePath">@c.Text</a>
                  <a href="@filePath" class="imagePreview">preview &raquo;</a>
                  <a href="@filePath" itemprop="contentURL" download="@c.Text"><img itemprop="thumbnailUrl" src="@thumbPath" alt="@c.Text" /></a>
                break;
                }
            }
          }
}