如何获取多媒体类型的tcm id从Tridion通过核心服务说jpg?

时间:2012-05-07 05:43:27

标签: tridion

Tridion中的Administration文件夹中有许多多媒体类型。 我想编写一个返回给定mime类型的tcm id的方法,例如:对于gif mime类型,它应返回“tcm:0-1-65544”。

任何人都可以对此有所了解吗?

2 个答案:

答案 0 :(得分:4)

每个模式都有一个名为AllowedMultimediaTypes的属性,它返回一个列表,默认多媒体模式通常设置为允许所有类型。如果它不允许所有类型,那么您可以为此目的创建一个特殊的模式。

所以你要做的就是获取Default Multimedia Schema的AllowedMultimediaTypes(或允许所有类型的特殊模式),然后将输入的mime类型与返回的每个MultimediaType的mimetimes相匹配。

以下是顶部的一些示例(未测试):

Schema defaultMMSchema = (Schema)engine.GetObject("Your-Default-MMSchema-WebDav-Path");
IList<MultimediaType> mmTypes = defaultMMSchema.AllowedMultimediaTypes;
foreach(MultimediaType mt in mmTypes)
{
  switch(mt.MimeType)
  {
    case "jpg":

    ...
  }
}

或者,开箱即用的多媒体类型的TCM ID是不变的,因此在将内容移植到另一个环境后,您无需担心它们会发生变化。因此,您可以编写一个提供mime类型到tcm ID映射的类。注意:如果您创建自定义项类型,这将不会那么优雅,因为您需要使用每个Tridion环境的TCM ID更新代码。

答案 1 :(得分:3)

您只需获取所有多媒体类型的列表,然后选择您需要的类型:

var mmType = ClientAdmin.GetSystemWideList(new MultimediaTypesFilterData()).Single(mt => ((MultimediaTypeData)mt).MimeType == "image/jpeg");