【问题标题】:Sitecore provide links to allow users to view/download media itemsSitecore 提供链接以允许用户查看/下载媒体项目
【发布时间】:2011-04-18 15:23:20
【问题描述】:

如何在页面中提供指向 Sitecore 媒体库中文档的链接?

在我的模板中,我有一个 Treelist,它允许用户为给定的页面对象选择多个文档。在我的子布局代码隐藏中,我遍历 Treelist 字段中的项目以获取它们的 ID,然后使用 Sitecore.Links.LinkManager.GetItemUrl() 获取项目的 URL。目前,我只是使用超链接呈现链接,但在单击链接时,我收到错误消息,提示未找到布局。

我是否需要创建一个布局,它是一个 ashx 处理程序来处理下载媒体项的内容流,或者是否有内置的东西可以做到这一点?

【问题讨论】:

    标签: asp.net sitecore sitecore-media-library


    【解决方案1】:

    要生成指向媒体库中项目的链接,您应该使用MediaManager。例如:

    string url = Sitecore.Resources.Media.MediaManager.GetMediaUrl(item)
    

    【讨论】:

    • 不要忘记使用 Sitecore StringUtil 来确保前缀!
    • @Younes 感谢您的提示,我应该在 StringUtil 中特别查看哪些方法?在相关的说明中,我刚刚开始在双语网站中使用这种方法并且遇到了更多问题。
    【解决方案2】:

    尝试使用Sitecore.Resource.Media.MediaProvider.GetMediaUrl()

    或者,对于每个项目,将其转换为 MediaItem。
    媒体文件夹应为:/~/media/
    MediaPath 是一个属性。
    扩展名是文件扩展名等。

    还可以看看使用MediaUrlOptions

    【讨论】:

    • 在 MediaUrlOptions 类中是否有任何我应该特别关注的属性?
    【解决方案3】:

    回复 mdresser 并完成 Younes 的评论;使用 StringUtil 确保前缀 '/' 看起来像这样:

    var thumbnailUrl = Sitecore.StringUtil.EnsurePrefix('/',
                            Sitecore.Resources.Media.MediaManager.GetThumbnailUrl(_thumbnail));
    

    【讨论】:

      【解决方案4】:

      您可以拥有一个“文件”类型的文档树列表,并且在您后面的代码中,您可以迭代一个循环来获取该文档项(具有文件类型)的 URL,然后您可以获得媒体 URL该文件项并将其分配给超链接。

      这里是代码sn-p:

      List<Item> documentList = your list of selected documents from sitecore 
      
      foreach(Item item in documentList)
      {
          FieldField file = item.Fields["FileField Name"];
          if(file != null)
          {
              if(file.MediaItem != null)
               {
                   hyperlink.NavigateUrl =      Sitecore.StringUtil.EnsurePrefix('/',Sitecore.Resources.Media.MediaManager.GetMediaUrl(file.MediaItem));
               }
           }
       }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-04-28
        • 1970-01-01
        • 2020-05-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多