【问题标题】:Kentico 12 (Portal) - Retrieve Media File Info from Media Selection in code behindKentico 12 (Portal) - 在后面的代码中从媒体选择中检索媒体文件信息
【发布时间】:2020-07-09 05:10:03
【问题描述】:

我正在创建一个小部件,允许用户使用媒体选择器控件从媒体库中选择图像,并返回图像和文件的属性(标题、替代文本等)。

我试图通过提供站点名称、文件路径和库文件夹来使用MediaFileInfoProvider method,但我无法让它返回任何内容。我也找不到关于 Kentico 12 的这种方法的任何文档 - 所以我将根据我在 8.2 中找到的内容进行。

提供的文件路径: /NAIT/media/nait-ca-content/about/0I3A6642_060519_Inst_Excellence_Nominees_2.jpg?ext=.jpg

代码:

MediaFileInfo mediaInfo1 = MediaFileInfoProvider.GetMediaFileInfo("NAIT", "about/0I3A6642_060519_Inst_Excellence_Nominees_2.jpg", "nait-ca-content");

string strFileTitle = mediaInfo1["FileTitle"].ToString();

使用此代码没有错误,事件日志中没有任何内容,但也没有返回任何内容。我尝试了多种不同的方法来格式化文件路径,包括this post 中建议的方法 - 到目前为止都没有奏效。

有谁知道 Kentico 12 是否仍支持此方法?或者如果我缺少什么?

【问题讨论】:

    标签: c# kentico


    【解决方案1】:

    通过说您要创建一个小部件,我假设您使用的是 Kentico 12 MVC。您可以通过在小部件属性中添加以下属性来使用“MediaFilesSelector”。

    [EditingComponent(MediaFilesSelector.IDENTIFIER, Label = "Image", Order = 1)]
    public IList<MediaFilesSelectorItem> Image { get; set; }
    

    在您的小部件控制器中,您可以使用它来检索媒体文件 GUID。

    var fileGuid = GetProperties().Image?.FirstOrDefault()?.FileGuid ?? Guid.Empty
    

    然后你可以使用以下代码获取媒体文件信息:

    var mediaFile = MediaFileInfoProvider.GetMediaFileInfo(fileGuid, SiteContext.CurrentSiteName);
    

    【讨论】:

    • 对不起 - 我应该指定的。不,不幸的是,我们在 Kentico 12 Portal 上。我将编辑我的问题以添加它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-23
    • 1970-01-01
    • 1970-01-01
    • 2017-02-11
    • 2016-03-15
    相关资源
    最近更新 更多