2

我有一个带有来自媒体库的图像属性的节点。该属性包含媒体图像的 ID。我需要从此 Id 中获取 Media 对象。在 Umbraco 4.x 中,您可以执行以下操作:

var image = new Media(imageId);

由于某种原因,这种方法似乎在行动中消失了。我发现的唯一一个将从媒体库中获取图像的名称。但我只得到身份证。

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

4

2 回答 2

7

在源头四处挖掘后,我找到了答案。要从 6.x 版的 WebControl 中通过 Id 获取 Media 对象,您必须执行以下操作:

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;

希望这对其他人有所帮助!

于 2013-04-09T17:55:21.333 回答
3

您现在还可以使用 Umbraco 中的 uQuery 库

Media mediaObject = umbraco.uQuery.GetMedia(mediaId);
于 2013-04-09T20:18:42.457 回答