在服务器C:\\TEST下存了文件a.doc
是不是只要用Server.Mappth("C:\\TEST\a.doc")就能在客户端下载该文件?
谢谢

解决方案 »

  1.   

    server.mappth是映射到你的工程目录,绝对路径直接写就可以了
      

  2.   

    不是,
    是返回与 Web 服务器上的指定虚拟路径相对应的物理文件路径。下面的页示例返回包含指定 Web 站点的虚拟目录的物理路径。要读取代码隐藏模块中的 MapPath,请使用 HttpContext.Current.Server.MapPath。
    [C#] 
    String FilePath;
    FilePath = Server.MapPath("/MyWebSite");
      

  3.   

    同意楼上的说法,用FilePath = Server.MapPath("/MyWebSite");即可
      

  4.   

    得到的FilePath含有文件名吗?还是仅仅是上层路径?
      

  5.   

    C:\\TEST\a.doc
    如果不是你的目录就直接写,是的话才能用到.
      

  6.   

    那么客户看到的文件路径是什么?file:///c:/test/a.doc?那不会从他本地机上下载文件吗?
      

  7.   

    那么客户看到的文件路径是什么?file:///c:/test/a.doc?那不会从他本地机上下载文件吗?--------不会,始终是服务器端的文件。
      

  8.   

    可是现在从客户端确实看到的是file:///c:/test/a.doc?为什么?
    我用了 Server.MapPath,但是单步执行时,看到值为@c:/test/a.doc,与不用时是一样的。
    难道不可以用超链下载?还是有其他原因?
      

  9.   

    用Server.MapPath可以直接指向发布目录"C:\Inetpub\wwwroot"
    用Request.ApplicationPath可以指向你运行的发布目录下的具体的一个子发布文件夹
    用Server.MapPath(Request.ApplicationPath + "/" + 路径)就可以获取一个完整的服务器路径了。
      

  10.   

    继续昨天的问题,
    使用 HttpContext.Current.Server.MapPath。
    [C#] 
    String FilePath;
    String docname="\a.doc"
    FilePath = Server.MapPath(".")+docname;
    在本地机器上得到
    FilePath值为
    "c:\\inetpub\\wwwroot\\WebApplication1\a.doc"
    可是原则上不是应该显示类似与localhost/a.doc这样的吗?
    不然到了客户机器,同样得到"c:\\inetpub\\wwwroot\\WebApplication1\a.doc"这样的值?
      

  11.   

    在哪个服务器上他就显示a.doc在该机上的绝对路径。
    在你的机子上为c:\\inetpub\\wwwroot\\WebApplication1\a.doc
    在服务器上就看a.doc的实际位置了/