首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过核心服务从Tridion获取多媒体类型的tcm id,比如jpg?

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

Stack Overflow用户
提问于 2012-05-07 13:43:27
回答 2查看 385关注 0票数 7

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

有人能对此有个想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-07 15:12:09

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

代码语言:javascript
复制
var mmType = ClientAdmin.GetSystemWideList(new MultimediaTypesFilterData()).Single(mt => ((MultimediaTypeData)mt).MimeType == "image/jpeg");
票数 3
EN

Stack Overflow用户

发布于 2012-05-07 14:07:38

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

因此,您所要做的就是获取默认多媒体模式(或允许所有类型的特殊模式)的AllowedMultimediaTypes,然后将输入的mime类型与返回的每个MultimediaType的mime时间进行匹配。

下面是一些未经过测试的示例:

代码语言:javascript
复制
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是恒定的,因此您不需要担心内容移植到另一个环境后它们会发生变化。因此,您可以编写一个类来提供mime类型到tcm ID的映射。注意:如果您创建自定义项类型,这将不会那么优雅,因为您将需要使用每个Tridion环境的TCM ID来更新您的代码。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10477207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档