Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • Jim 5 posts 83 karma points
    Aug 19, 2014 @ 17:53
    Jim
    0

    Get Media ID

    Is there any better way to do this?  I want to display a media item directly in the browser.  Parsing the property seems kind of convoluted.

    umbraco.cms.businesslogic.media.Media displayMedia = new umbraco.cms.businesslogic.media.Media(Int32.Parse(Node.GetCurrent().GetProperty("mediaFile").Value));
    
    Response.Redirect(displayMedia.GetProperty<string>("umbracoFile"));
    

    Thanks,

    -Jim

  • Charles Afford 1163 posts 1709 karma points
    Aug 25, 2014 @ 11:41
    Charles Afford
    0

    Hi what version of Umbraco are you using? Charlie

  • Jeroen Breuer 4861 posts 12138 karma points MVP 3x admin c-trib
    Aug 25, 2014 @ 12:01
    Jeroen Breuer
    0

    Hello,

    If you are using Umbraco 6 or higher you can use Umbraco.TypedMedia(id) for this: http://our.umbraco.org/documentation/Reference/Mvc/querying

    Jeroen

  • Jim 5 posts 83 karma points
    Aug 26, 2014 @ 16:23
    Jim
    0

    @Charles Afford,  I'm using 4.11.10.

     

    Thanks Jeroen Breuer ... any suggestions for 4.x?

     

    -Jim

  • Jeroen Breuer 4861 posts 12138 karma points MVP 3x admin c-trib
    Aug 26, 2014 @ 16:25
    Jeroen Breuer
    0

    Uhm I think the feature was actually added in Umbraco 4.10 already so you can probably use it.

    Jeroen

  • Charles Afford 1163 posts 1709 karma points
    Aug 27, 2014 @ 11:46
    Charles Afford
    0

    Yea i think TypedMedia was added as well.

    So you can do (i think)

    @Umbraco.TypedMedia(Model.Content.GetPropertyValue("your alias")).Url

  • Jim 5 posts 83 karma points
    Aug 27, 2014 @ 22:51
    Jim
    0

    I'm using Web forms so it looks like I would expose the UmbracoHelper and then use TypedMedia.  Does this sound right?

    UmbracoHelper umbracoHelper = new UmbracoHelper(Umbraco.Web.UmbracoContext.Current); Response.Redirect(umbracoHelper.TypedMedia(Node.GetCurrent().GetProperty("mediaFile")).UrlName);

     

  • Jeroen Breuer 4861 posts 12138 karma points MVP 3x admin c-trib
    Aug 28, 2014 @ 09:37
    Jeroen Breuer
    0

    Hello,

    The code is correct, but Node.GetCurrent is legacy. Beside Umbraco.TypedMedia you also have Umbraco.TypedContent. With that you also get the property. Something like this:

    UmbracoHelper umbracoHelper = new UmbracoHelper(Umbraco.Web.UmbracoContext.Current); 
    Response.Redirect(umbracoHelper.TypedMedia(umbracoHelper.TypedContent(id).GetPropertyValue<int>("mediaFile")).UrlName);

    You can also get the current node through the Umbraco helper like this:

    UmbracoHelper umbracoHelper = new UmbracoHelper(Umbraco.Web.UmbracoContext.Current); 
    Response.Redirect(umbracoHelper.TypedMedia(umbracoHelper.AssignedContentItem.GetPropertyValue<int>("mediaFile")).UrlName);

    Jeroen

  • Jim 5 posts 83 karma points
    Aug 28, 2014 @ 23:18
    Jim
    0

    Jeron,

     

    umbracoHelper.AssignedContentItem.GetPropertyValue<int>("mediaFile")

    wouldn't compile because IPublishedContent doesn't have a GetPropertyValue member so I changed it to:

    Response.Write(umbracoHelper.TypedMedia(umbracoHelper.AssignedContentItem.GetProperty("mediaFile").Value).UrlName)

    but that only gives me the name of the media...I need the full URL.  How would you recommend I obtain that?

     

    Thanks,

    -Jim

  • Jeroen Breuer 4861 posts 12138 karma points MVP 3x admin c-trib
    Aug 29, 2014 @ 15:01
    Jeroen Breuer
    0

    Hello,

    Sorry I forgot to mention that .GetPropertyValue<> is an extension method. So you need to add the Umbraco.Core namespace before you can use it.

    If you want to full url try something like this:

    var uri = new Uri(HttpContext.Current.Request.Url.AbsoluteUri);
    var domainUrl = string.Format("{0}://{1}", uri.Scheme, uri.Authority);
    Response.Write(domainUrl + umbracoHelper.TypedMedia(umbracoHelper.AssignedContentItem.GetPropertyValue<int>("mediaFile").Value).UrlName)

    Jeroen

  • Jim 5 posts 83 karma points
    Aug 29, 2014 @ 16:34
    Jim
    100

    That won't give me the full path.  The following seems to work however.

           UmbracoHelper umbracoHelper = new UmbracoHelper(Umbraco.Web.UmbracoContext.Current);
    
            int iMediaFileId = umbracoHelper.AssignedContentItem.GetPropertyValue<int>("mediaFile");
            string sMediaURL = umbracoHelper.TypedMedia(iMediaFileId).GetPropertyValue<string>("umbracoFile");
    
            Response.Redirect(sMediaURL);
    
    -Jim
  • Charles Afford 1163 posts 1709 karma points
    Aug 30, 2014 @ 12:26
    Charles Afford
    0

    Yep that will do it Jim. You need to get the value of "umbracoFile"

  • This forum is in read-only mode while we transition to the new forum.

    You can continue this topic on the new forum by tapping the "Continue discussion" link below.

Please Sign in or register to post replies