• web中绝对路径换虚拟路径


    最近在做一个web项目,将图片上传到服务器后,再访问时拿到的是绝对路劲,而需要的是虚拟路劲。经过一番折腾找到了下列方法可以直接转换。

     /// <summary>
            /// 将Web站点下的绝对路径转换为虚拟路径
            /// 注:非Web站点下的则不转换
            /// </summary>
            /// <param name="page">当前页面指针,一般为this</param>
            /// <param name="specifiedPath">绝对路径</param>
            /// <returns>虚拟路径, 型如: ~/</returns>
            public static string ConvertSpecifiedPathToRelativePath(Page page, string specifiedPath)

            {
                string virtualPath = page.Request.ApplicationPath;

                string pathRooted = HostingEnvironment.MapPath(virtualPath);

                if (!Path.IsPathRooted(specifiedPath) || specifiedPath.IndexOf(pathRooted) == -1)
                {
                    return specifiedPath;
                }

                if (pathRooted.Substring(pathRooted.Length - 1, 1) == "\")
                {
                    specifiedPath = specifiedPath.Replace(pathRooted, "~/");
                }
                else
                {
                    specifiedPath = specifiedPath.Replace(pathRooted, "~");
                }
                string relativePath = specifiedPath.Replace("\", "/").Substring(1, specifiedPath.Length - 1);
                return relativePath;
            }

    备注:  string relativePath = specifiedPath.Replace("\", "/").Substring(1, specifiedPath.Length - 1); 里面的 Substring(1, specifiedPath.Length - 1)是我自己加的。根据自己需求。原来是string relativePath = specifiedPath.Replace("\", "/");

  • 相关阅读:
    30+简约时尚的Macbook贴花
    20+非常棒的Photoshop卡通设计教程
    20+WordPress手机主题和插件【好收藏推荐】
    75+精美的网格网站设计欣赏
    TopFreeTheme精选免费模板【20130629】
    45个有新意的Photoshop教程和技巧
    30个高质量的旅游网站设计
    55个高质量的Magento主题,助你构建电子商务站点
    一个弹框引起的彻夜加班
    开始跟踪Redis啦,开帖
  • 原文地址:https://www.cnblogs.com/bin521/p/7133296.html
Copyright © 2020-2023  润新知