gpt4 book ai didi

tridion - 图像正在发布,TCM id 附加图像名称

转载 作者:行者123 更新时间:2023-12-02 10:14:01 24 4
gpt4 key购买 nike

Release模式 - 静态

我正在尝试发布图像,但问题是每当我发布这些图像时,它们的 TCM URI 都会附加到它们的名称中(即,如果图像名称为 example 并且其 TCM URI 类似于 tcm:1-115,图像文件名变为example_tcm1-115)。

我编写了以下代码:

public void Transform(Engine engine, Package package)
{
Filter MMCompFilter = new Filter();
MMCompFilter.Conditions["ItemType"] = Tridion.ContentManager.ItemType.Component;
Folder folder = engine.GetObject("tcm:1-1-2") as Folder;

foreach (Component MMcomp in folder.GetItems(MMCompFilter))
{
Binary binary = engine.PublishingContext.RenderedItem.AddBinary(MMcomp);
String binaryurl = binary.Url;
char[] array = binaryurl.ToCharArray();
Array.Reverse(array);
string obj = new string(array);
string final = newImagepath(obj);
char[] array2 = final.ToCharArray();
Array.Reverse(array2);
string obj2 = new string(array2);

package.PushItem("Image", package.CreateHtmlItem(obj2));
}

public string newImagepath(string filePath)
{
int formatIndex =filePath.IndexOf(".");
string format= filePath.Substring(0,formatIndex);
int finalPath=filePath.IndexOf("_");
string newPath=filePath.Substring((finalPath+1));
return (format+"."+newPath);
}
}

我想发布不附加 TCM URI 的图像。请建议如何完成。

最佳答案

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 附加到文件名以使其唯一。

关于tridion - 图像正在发布,TCM id 附加图像名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11791268/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com