我有一堆图像存储在Ektron的Library中。我正在尝试在我的一个网页上以幻灯片的形式显示这些图像。这是我的:
public partial class WebAssets_UserControls_uxSlideShow : System.Web.UI.UserControl
{
public List<String> images { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
List<LibraryData> libraryImageList = GetLibraryDataList(1);
var imageList = (from im in libraryImageList
where im.FolderName == "Alumni"
select im).ToList();
var imageUrls = imageList.Select(image => image.FileName).ToList();
SlideShowRepeater.DataSource = imageUrls;
SlideShowRepeater.DataBind();
}
private List<LibraryData> GetLibraryDataList(int libraryTypeId)
{
LibraryManager libraryManager = new LibraryManager(ApiAccessMode.LoggedInUser);
LibraryCriteria criteria = new LibraryCriteria(LibraryProperty.Id, EkEnumeration.OrderByDirection.Descending);
criteria.AddFilter(LibraryProperty.TypeId, CriteriaFilterOperator.EqualTo, libraryTypeId);
// criteria.AddFilter(LibraryData.FolderName, CriteriaFilterOperator.EqualTo, libraryFolderName);
List<LibraryData> libraryDataList = libraryManager.GetList(criteria);
return libraryDataList;
}
}
以及HTML。。。
<div id="slideShowImages" class="flexslider">
<ul class="slides">
<asp:Repeater ID="SlideShowRepeater" runat="server">
<ItemTemplate>
<li>
<img alt="Alumni Events" src="<%# Container.DataItem %>" height="240" width="632" />
</li>
</ItemTemplate>
</asp:Repeater>
</ul>
</div>
不过,我提取的图像URL不起作用。找不到路径。图像的路径如下所示:
/uploadedimages/Alumni/001.jpg
我想它们没有显示的原因是我的项目中没有上传的图像文件夹,而是该文件夹位于Ektron,但我不知道该更改什么才能显示图像。
Ektron假设默认情况下图像是本地的。
您必须将路径修改为绝对路径,前提是您的Ektron实例是公共的,例如。http://www.example.com/uploadedImages/Alumni/001.jpg
或:
如果Ektron安装不是公共的,就像在三层部署中一样,那么你有三个选择:
- 让你的应用程序发出一个web请求,本质上充当一个代理,将Ektron安装中的文件提供给客户端
- 使用Robocopy或XCopy等工具将文件从Ektron移动到您的应用程序中。你甚至可以通过Ektron扩展(又名策略)将文件从Ektron服务器推广到你的项目中。在文档中,展开全部并在页面中搜索LibraryStrategy
- 在IIS中使用网络共享或虚拟目录,使应用程序的行为就像文件是您项目的本地文件一样,即使它们仍然托管在Ektron中