2013-04-09 59 views
2

我有一个节点,其媒体库中的图像属性。该媒体资源包含媒体图片的ID。我需要从此Id获取媒体对象。在一把umbraco 4.x中你可能只是做到以下几点:Umbraco 6.x .Net控制媒体ID

var image = new Media(imageId); 

出于某种原因,这种方法似乎在行动失踪。我找到的唯一一个将从媒体库中获取图像的名称。但我只得到Id。

这是为我将在页面上使用的.Net控件。我只需要获取图像的完整路径,以便我可以在图像标签的SRC字段中使用它。

回答

7

我在源代码中挖掘后发现了答案。从WebControl的内获得通过ID的媒体对象在6.x版本中,你必须做到以下几点:

var mediaObject = ApplicationContext.Current.Services.MediaService.GetById(mediaId); 

然后你就可以从对象的下列属性:

var filePath = mediaObject.Properties["umbracoFile"].Value as string; 
var width = mediaObject.Properties["umbracoWidth"].Value as int?; 
var height = mediaObject.Properties["umbracoHeight"].Value as int?; 
var bytes = mediaObject.Properties["umbracoBytes"].Value as int?; 
var fileExtension = mediaObject.Properties["umbracoExtension"].Value as string; 

希望这帮助别人!

3

,你也可以使用uQuery库,是一把umbraco的一部分时下

Media mediaObject = umbraco.uQuery.GetMedia(mediaId);