2013-04-09 29 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);