ASP.NET中Server.MapPath()丶 Request.MapPath()区别丶用法

ASP.NET中Server.MapPath() 和 Request.MapPath()使用

**Server.MapPath(string) ?*返回与 Web 服务器上的指定虚拟路径相对应的物理文件路径。参数: Web 服务器的虚拟路径。
**Request.MapPath(string) :**将指定的虚拟路径映射到物理路径。参数:当前请求的虚拟路径(绝对路径或相对路径)。(asp中Request无此方法)
**返回值:**由虚拟路径映射到的服务器物理路径。注意:只是映射,并不一定就存在。
****(1)、****Server.MapPath("/") 应用程序根目录所在的位置
如:
C:/Inetpub/wwwroot/
**(2)、**Server.MapPath("./") 表示所在页面的当前目录
注:等价于Server.MapPath("") 返回 Server.MapPath("") 所在页面的物理文件路径
**(3)、**Server.MapPath("…/")表示上一级目录
**(4)、**Server.MapPath("~/")表示当前应用级程序的目录,如果是根目录,就是根目录,如果是虚拟目录,就是虚拟目录所在的位置

C:/Inetpub/wwwroot/Example/

特殊参数:

//  当前目录(./) 此处参数为点和空串效果相同。   E:\解决方案\项目\zz\qq
Request.MapPath(./qq);
Server.MapPath(./qq);
Request.MapPath(qq);
Server.MapPath(qq);
//  上级目录(../) 如果已经是根则会抛异常。   E:\解决方案\项目\qq
Request.MapPath(../qq);
Server.MapPath(../qq);
//  服务器根(/)  C:\inetpub\wwwroot\qq
Request.MapPath(../qq);
Server.MapPath(../qq);
//  虚拟目录根(~/)  E:\解决方案\项目\qq
Request.MapPath(~/qq);
Server.MapPath(~/qq);

ASP.NET中Server.MapPath() 和 Request.MapPath()区别:

**Server.MapPath(string) ?*是将相对于当前调用文件的文件(或目录)映射为物理路径;
**Request.MapPath(string) ?*是将string虚拟路径映射为物理路径(asp中Request无此方法)
Server.MapPath(string) 中string 可以用“…/”方式引用父目录,甚至可以将此目录跳到整个WEB目录外,如:C:\WWWROOT
目录为WEB根目录,在根目录文件中调用此Server.MapPath("…/xyz.gif"),则可以调用WEB目录外的脚本、资源等。
Request.MapPath(string) 中的string为虚拟目录,只能相对WEB虚拟目录形式的,也不允许"…/“方式调用,只能是”/","/xx"等字符串
有时候直接用Server.MapPath(string) 调用一个文件比较麻烦,因为不同的目录中调用同一个Server.MapPath(string) 函数就会得到不同的值,
特殊的话,就需要通过判断本身目录层次才能获取正确的地址,使用的Request.MapPath(string)就可以调用同一个目录文件。不用做目录判断

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值