Images are published with TCM ID added with image name

Publish Mode - Static

I am trying to publish images, but the problem is that every time I publish these images, their TCM URI is added to their name (i.e. if the image name exampleand its TCM URI are similar tcm:1-115, the image file name becomes example_tcm1-115).

I wrote the following code:

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);
    }
}

I want to publish images without adding TCM URI to it. Plz suggests how this can be done.

+5
source share
3 answers

The easiest is always the best.

In your TBB, just click the individual images in the package:

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

TBB "PublishBinariesInPackage", .

+5

RenderedItem.AddBinary. . :

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

All Articles