【问题标题】:Kentico - generate image previews after updating document field via APIKentico - 通过 API 更新文档字段后生成图像预览
【发布时间】:2020-08-10 20:00:00
【问题描述】:

我有一个脚本可以将图像上传到媒体库(工作正常),然后将每个图像分配给也可以工作的特定文档字段。唯一的问题是没有显示预览缩略图:

更新字段的代码非常简单:

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

根据数据库,图像 url 是正确的,并且图像在前端按预期显示。有没有可以调用的方法来生成预览?

顺便说一下,我正在使用 Kentico 11。

编辑:在我的数据库中,字段值以 tilda '~' 开头,但正如您在屏幕截图中看到的那样,页面没有以 tilda 作为值的前缀。但是,如果我单击选择,它会将我带到正确的图像,如果我选择它,它会使用 tilda 更新字段并获得图像预览

【问题讨论】:

    标签: kentico kentico-11


    【解决方案1】:

    默认的 Kentico 控件在开头保存带有“~”符号的 URL,即使它没有显示在管理 UI 中。如果您像这样修改代码:

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

    这应该会有所帮助。确保在数据库中的实际字段中看到如下内容:

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

    更新:在 URL '&ext=.jpg' 中保留扩展参数似乎也很重要

    【讨论】:

    • 你让我走上了正确的道路。在我的数据库中,字段值以 tilda '~' 开头,但正如您在屏幕截图中看到的那样,页面没有以 tilda 作为值的前缀。但是,如果我单击选择,它会将我带到正确的图像,如果我选择它,它会使用 tilda 更新字段
    • 是的,一旦我添加了后缀“&ext=.jpg”,它就起作用了。非常感谢
    【解决方案2】:

    您的项目图像字段的类型是什么?这不是文件或附件。对于那些你有预览的类型。

    如果您使用管理界面手动上传图像。在这种情况下预览是否有效?如果是,只需检查数据库并比较差异。

    【讨论】:

    • 从提供的屏幕截图看来,它是一个带有媒体选择控件的文本字段。并且图像是从媒体库中选择的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-29
    • 1970-01-01
    • 2014-07-06
    • 2016-01-03
    • 1970-01-01
    相关资源
    最近更新 更多