图像随着TCM ID附加图像名称而发布

时间:2012-08-03 07:34:28

标签: tridion tridion-2011

发布模式 - 静态

我正在尝试发布图片,但问题是每当我发布这些图片时,他们的TCM URI都附加到他们的名字上(即图片名称是example,其TCM URI就像{{1} },图像文件名变为tcm:1-115)。

我写了以下代码:

example_tcm1-115

我想发布没有附加TCM URI的图像。 Plz建议如何做到。

3 个答案:

答案 0 :(得分:7)

Chris Summers在这个主题http://www.urbancherry.net/blogengine/post/2010/02/09/Unique-binary-filenames-for-SDL-Tridion-Multimedia-Components.aspx

上写了一篇非常好的文章

修复它基本上是一件非常简单的事情,但是你应该注意到它会带来巨大的后果!

您只能在一个位置发布一个具有特定文件名的二进制文件(并且二进制文件只能发布到演示服务器上的单个位置,除非您将其作为变体发布)。但是,在CMS中,很容易在不同的文件夹中创建具有相同二进制文件名的多媒体组件,如果它们发布到同一位置,则会发生冲突。这就是为什么默认情况下SDL Tridion将TCM URI附加到文件名以使其唯一。

答案 1 :(得分:5)

最简单总是最好。

在您的TBB中,只需将各个图像推送到包裹中:

package.PushItem(package.CreateMultimediaItem(component.Id));

然后使用“PublishBinariesInPackage”TBB将这些图像发布到演示服务器。

答案 2 :(得分:3)

您可以使用RenderedItem.AddBinary方法实现此目标。该方法的某些重载版本允许将图像作为流发布,并传递任何文件名。例如:

public Binary AddBinary(
    Stream content,
    string filename,
    string variantId,
    string mimeType
)