rory
rory

Reputation: 1438

Kentico - generate image previews after updating document field via API

I have a script to upload images to the media library (works fine) and then assign each image to a particular document field which also works. The only issue is the preview thumbnails aren't showing:

enter image description here

The code to update the field is pretty straight forward:

private static void AssignImageToProject(string projectID, int index, string imgUrl)
{
    var projectPage = _projectPages
        .Where(p => p.GetStringValue("ProjectID", null) == projectID)
        .FirstOrDefault();

    if (projectPage == null) return;

    projectPage.CheckOut();

    projectPage.SetValue($"ProjectImage{index+1}", $"{imgUrl}");

    // Updates the page in the database
    projectPage.Update();

    // Creates a new version of the updated page (required even when not using content locking)
    // If using content locking, checks in the page
    projectPage.CheckIn();

    projectPage.Publish();
}

The image url is correct as per the DB and the images display as expected on the front end. Is there a method I can call to generate the previews?

I'm using Kentico 11 by the way.

Edit: In my DB the field value starts with a tilda '~' but as you can see in the screenshot the page does not prefix the value with the tilda. However, if I click Select, it brings me to the correct image and if I select it, it updates the field with a tilda and I get the image preview

Upvotes: 1

Views: 177

Answers (2)

Dmitry Bastron
Dmitry Bastron

Reputation: 694

The default Kentico control saves URL with "~" symbol in the beginning even though it doesn't display it in the admin UI. If you amend your code like this:

projectPage.SetValue($"ProjectImage{index+1}", $"~{imgUrl}");

It should help probably. Make sure in the actual field in the database you see something like this:

~/getmedia/16b40b07-9b41-4812-9194-4bb35470ad8c/Bakery-And-Coffee.jpg?width=849&height=565&ext=.jpg

UPDATE: it seems it is also important to keep an extension parameter in the URL '&ext=.jpg'

Upvotes: 2

Peter Mogilnitski
Peter Mogilnitski

Reputation: 998

What is the type of your project image field? This is not file or attachment. For those types you have preview.

if you upload an image using using admin interface manually. Does preview works in this case? if yes just check the DB and compare the differences.

Upvotes: 0

Related Questions