我用Server.MapPath("虚拟目录")获取到虚拟目录的物理路径后,再找开虚拟目录中的网页,网页上的图片都打不开了,网页上的图片是用相对路径引用的,查看网页上的图片属性发现路径不对正确的应该是
http://IP/虚拟目录/image/aaa.gif但现在是
http://IP/image/aaa.gif

解决方案 »

  1.   

    把代码贴上来,帮你改YaFeng Studio 
    欢迎大家进行.NET技术交流
      

  2.   

    代码如下
    //路径
    custCMD = new SqlCommand("SELECT url FROM pic_xm WHERE id="+ strId, Conne);
    myReader = custCMD.ExecuteReader();
    string strUrl="";
    if(myReader.Read())
    {
    if(myReader.IsDBNull(0)==false)
    strUrl=myReader.GetString(0);
    else
    strUrl="";
    }
    else
    strUrl="";
    myReader.Close();Conne.Close();int intIndex = strUrl.IndexOf("\\");
    string strXnml;
    if(intIndex > 0)
    {
         strXnml = strUrl.Substring(0,intIndex);
    }
    else
    {
         strXnml = "";
    }
    string strDir = Server.MapPath(strXnml);
    string a = Server.MapPath(".");
    if(System.IO.File.Exists(strDir + "\\" + strUrl.Substring(intIndex + 1,strUrl.Length - intIndex - 1)))
    {
    Response.Redirect(Server.UrlEncode(strUrl));
    }
    else
    {
    Response.Redirect("error.aspx?Mess=nofile");
    }
      

  3.   

    可能情况如下:
    1:数据库获取的数据为空
    2:int intIndex = strUrl.IndexOf("\\");中intIndex < 0,建议采用断点调试,或者Response.Write(intIndex),看看该值为何
      

  4.   

    string strDir = Server.MapPath(strXnml);
    string a = Server.MapPath(".");
    ————————————————
    Server.mapPath不适用于“.”或“..”的相对路径语法,只能用于同级目录,所以可能出错。
      

  5.   

    数据没问题
    可以打开strUrl指向的网页,但网页上的图片打不开还有
    去掉 string a = Server.MapPath(".");这句代码也是一样的。各位再帮帮忙
      

  6.   

    还是不行,楼上的能不能说一下
    Server.MapPath("~");
    怎么用。
      

  7.   

    问题解决了,不是Server.MapPath的问题,
    是Response.Redirect(Server.UrlEncode(strUrl));有问题
    改为Response.Redirect(strUrl);就好了。为什么对url编码后相对目录就不对了
      

  8.   

    说说你用哪种编码方式?gb还是unicode?