大家好,我做了一个上传照片的功能,比如我填写信息(包含照片信息之后)把照片传到了服务器的某一个目录下(比如是A电脑的D:/image)。然后等我在B电脑打开这个网站的时候,照片信息没有显示出来,我使用的是iamge控件,在控件中绑定了iamgeurl=Eval(“photo”)。photo就是我存放在数据库中的照片的地址是个绝对路径,那么我在B机器上读取信息的时候照片显示不出来,因为照片在B电脑里面没有,那么请问该如何设置照片的地址?才能保证我在B电脑上读取信息的时候可以显示照片?

解决方案 »

  1.   


    我现在觉得肯定是照片的地址不对,因为我的代码是直接使用
    String savePath = @"C:\Site\images\";
    这样我保存在数据库中的photo的值就是C:\Site\images\。
    然后再客户端图片控件iamgeurl=Eval(“photo”)是这么绑定的,因为photo指示了一个路径,那么实际上我是无法获得获得照片的,因为照片是在服务器上,我本机的C:\Site\images\里面没有照片。请问这该如何操作?我试了不少方法了,现在没有头绪了,谢谢,请大家帮忙
      

  2.   

    FileUpload上传图片文件
    Image1.ImageUrl=Page.ResolveUrl("~/"+Path);
    iamgeurl=<%# Page.ResolveUrl("~/"+Eval("path"))%>
      

  3.   

    你好 能否解释一下
    Image1.ImageUrl=Page.ResolveUrl("~/"+Path);是什么意思?
      

  4.   

    在编写 ASP.NET 应用程序的时候,有时为了更好地进行控制静态文件的路径,如在模板页或者用户控件中设置js或者css文件的路径等,采用绝对路径是难免的。下面就是几种获取绝对路径的几种方法。C# 代码
    VirtualPathUtility.ToAbsolute("~/")
    HttpRuntime.AppDomainAppVirtualPath
    Request.ApplicationPath
    Page.ResolveUrl("~")
    以上代码生成的结果如下:
    当以网站的方式访问时,结果如下: VirtualPathUtility.ToAbsolute("~/") = / 
    HttpRuntime.AppDomainAppVirtualPath = / 
    Request.ApplicationPath = / 
    Page.ResolveUrl("~") = / 当以虚拟目录(http://localhost:806/web2/url.aspx)访问时,结果如下:VirtualPathUtility.ToAbsolute("~/") = /web2/ 
    HttpRuntime.AppDomainAppVirtualPath = /web2 
    Request.ApplicationPath = /web2 
    Page.ResolveUrl("~") = /web2/ 采用第二种和第三种方法,还需要做一下处理,因为网站访问时是以/结尾,而以虚拟目录访问时则是没有/的,进行还得进行一次判断,稍微麻烦一点。
    但是,这些方法在页面中使用是没有任何问题的,但是如果在 Global 的 Application_Start 事件里需要得到网站的绝对路径,则需要使用前面2种方法,如果使用第三种方法,则会报告如下的错误:
    Request is not available in this context 
    所以,只能采取头2种方法。例如C# 代码
    void Application_Start(object sender, EventArgs e)
    {
        System.IO.StreamWriter s = new System.IO.StreamWriter(HttpRuntime.AppDomainAppPath + "log.txt");
        s.WriteLine(VirtualPathUtility.ToAbsolute("~/"));
        s.WriteLine(HttpRuntime.AppDomainAppVirtualPath);
        s.Close();
    }