Umbraco 中获取一个media item的文件路径 file path

我们要使用UmbracoHelper, 这里就需要用到我们在之前的blog里面写的UmbracoContext

参看这个blog     https://www.cnblogs.com/wphl-27/p/9927044.html

public class ContextHelpers
{

   public static UmbracoContext EnsureUmbracoContext()
   {
if(UmbracoContext != null)
         {
             return UmbracoContext.Current;
         }
      var dummyHttpContext = new HttpContextWrapper(new HttpContext(new SimpleWorkerRequest("blah.aspx", "", new StringWriter())));
            return UmbracoContext.EnsureContext(
                dummyHttpContext,
                ApplicationContext.Current,
                new WebSecurity(dummyHttpContext, ApplicationContext.Current),
                UmbracoConfig.For.UmbracoSettings(),
                UrlProviderResolver.Current.Providers,
                false);

    }
}

1. 在View 中

在View中写如下代码

UmbracoHelper uHelper = new UmbracoHelper(ContextHelper.EnsureUmbracoContext());

string mediaUrl = "";
if (CurrentPage.HasValue(propertyName))
{
    var mediaItem = uHelper.Media(CurrentPage.propertyName.ToString());
    mediaUrl = mediaItem.umbracoFile;
}
return mediaUrl;

2. 在后台代码中写

using Umbraco.Web;

public static string GetMediaUrlFromPropertyName(dynamic contentItem, string propertyName)
{
    UmbracoHelper uHelper = new UmbracoHelper(ContextHelper.EnsureUmbracoContext());
    string mediaUrl = "";
    if (contentItem.HasValue(propertyName))
    {
        var mediaItem = uHelper.Media(contentItem.GetPropertyValue(propertyName));
        mediaUrl = mediaItem.umbracoFile;
    }
    return mediaUrl;
}

原文请参看  https://codeshare.co.uk/blog/how-to-get-the-file-path-of-a-media-item-in-umbraco/

原文地址:https://www.cnblogs.com/wphl-27/p/10043245.html

时间: 2024-11-09 00:14:17

Umbraco 中获取一个media item的文件路径 file path的相关文章

Linux rm(删除一个目录中的一个或多个文件或目录或删除非空目录)

rm命令.rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除.对于链接文件,只是删除了链接,原有文件均保持不变. rm是一个危险的命令,使用的时候要特别当心,尤其对于新手,否则整个系统就会毁在这个命令(比如在/(根目录)下执行rm * -rf).所以,我们在执行rm之前最好先确认一下在哪个目录,到底要删除什么东西,操作时保持高度清醒的头脑. 命令格式: rm [选项] 文件- 命令功能: 删除一个目录中的一个或多个文件或目录,如

Asp.Net 获取FileUpload控件的文件路径、文件名、扩展名

string fileNameNo = Path.GetFileName(FileUploadImg.PostedFile.FileName); //获取文件名和扩展名string DirectoryName = Path.GetDirectoryName(FileUploadImg.PostedFile.FileName); //获取文件所在目录string Extension = Path.GetExtension(FileUploadImg.PostedFile.FileName); //

android如何获取一个SD卡指定文件夹的图片Uri uri问题

============问题描述============ String a="file://"+Environment.getExternalStorageDirectory().getPath()+"/dcim/Camera/"; //  File baseFile = new File(a+"/dcim/Camera/15.jpg"); //  Uri uri =  Uri.fromFile(baseFile) ; //  Uri uri =

如何获取一个package或go文件的所有依赖

通过go list命令可以获取到一个包或文件的所有依赖. go list -e -json {packagename or go file path} 查看golang的源码可以发现,通过"cmd/go/internal/load"的Packages函数可以获取到项目的依赖信息,但是,这里面有一个问题,internal包是收到保护的,是不允许进行引用的(编译器编译不过),此时,需要copy一份源码出来,将其转换为可以直接调用的package. package main import (

从Resource Manager中获取一个新的Application ID

前提:有一个hadoop集群,并且拷贝core-site.xml,hdfs-site.xml,mapred-site.xml,yarn-site.xml到classpath下,可以使src/main/resources 1.获取一个GetNewApplicationRequest,实例是protobuf的类GetNewApplicationRequestPBImpl,未来会支持其他序列化方式.序列化方式决定了RPC工厂,产生哪种可序列化类. Records.newRecord,就是实例化一个pr

shell 中获取一个uuid

写shell脚本时,有时想要制造一个唯一的ID(例如临时文件)可以用以下命令获取一个UUID cat /proc/sys/kernel/random/uuid 当然通常用一个随机的数字或者随机字符串基本也可以满足一个唯一性较好的临时名字了.不过用uuid可能更加保险一点.

WEB编程中获取src目录下的文件(没有src目录)

这种情况遇见的会比较多,像一个WEB工程,如果在src下面写了一个xml或者一些其它的文件,当工程发布到服务器时,web程序是在tomcat等服务器下运行这个程序的,这个时候,程序目录里面并没有src文件夹,那么这种情况下要怎么办呢? 其实当程序发布到服务器时,src下面的文件也会被一起发布到服务器中,只不过是没有了src的目录,这种情况下,可以用如下代码来获取: /** * 数据文件的位置 */ private static String dbFilePath=""; /** * 获

在CMD中建立一个不能删除的文件

Windows 下不能够以下面这些字样来命名文件/文件夹,包括:"aux""com1""com2""prn""con"和"nul"等,因为这些名字都属于设备名称,等价于一个 DOS 设备,如果我们把文件命名为这些名字,Windows 就会误以为发生重名,所以会提示"不能创建同名的文件"等等. 当然,有一些特殊的方法可以偷机取巧,建立以这些设备名为名的文件夹,比如我们在

LoadRunner中获取一个场景运行时的唯一值

/* * 本代码产生一个从1970年1月1日0时开始累计以毫秒为单位的数值, * 在需要唯一值的地方使用时前缀上VuserID以保证场景运行期内该值为唯一 * (局限:不适用于脚本单次执行时间小于1毫秒的情况,当然该情况非常罕见,所以请放心使用) */ int a; int b; typedef long time_t; struct _timeb { time_t time; unsigned short millitm; short timezone; short dstflag; }; s