unbraco - GetMedia没有返回正确的url
本文关键字:url 返回 GetMedia unbraco | 更新日期: 2023-09-27 17:50:30
我试图重定向到媒体url,但使用代码blow,结果是完整的url由媒体的大小连接。
例如,url返回/media/123/example。pdfpdf4000XPathNodeIterator xName = umbraco.library.GetMedia(Convert.ToInt32(pdfid), false);
string url = xName.Current.Value;
Response.Redirect("~/"+ url);
发生了什么事?
我只是在寻找如何做到这一点,和umbraco现在包括uQuery获取这样的数据更容易,所以回答你的问题,你可以使用:
Media pdf = umbraco.uQuery.GetMedia(pdfId);
Response.Redirect(pdf.GetProperty<string>("umbracoFile"));
只是一个提示:如果它是一个图像媒体项(而不是一个文件),这将更容易:
Media img = umbraco.uQuery.GetMedia(imgId);
imgTag.ImageUrl = img.GetImageUrl();
不知道为什么uQuery不包括GetFileUrl()
,但GetProperty<string>()
似乎比自己使用xpath迭代器更好。
这里有一个解决方案,这里也有。但是,实际上您可以创建如下方法来解决这个问题:
public string getImage(int ImageID)
{
XPathNodeIterator xn = umbraco.library.GetMedia(ImageID, false);
xn.MoveNext();
XPathNodeIterator xn2 = xn.Current.Select("data[@alias='umbracoFile']");
xn2.MoveNext();
return xn2.Current.Value;
}
要获取媒体文件URL,只需输入
new Media(mediaId).getProperty("umbracoFile").Value.ToString()