当前位置: 首页 > 图文教程 > 网络编程 > ASP > 有关Server.Mappath详细接触

ASP
ASP正则表达式技巧
ASP Access实现网站计数器(访问量)
ASP新闻分页,将一篇过长的文章分页,生成静态页面
一些关于asp 购物车的想法
一个sql查询器,自动画表格填字段
ASP实现文件直接下载的代码
把网页中的(电话,qq等数字)生成图片的ASP程序
asp长文章用分页符来分页显示
Asp函数介紹(37个常用函数)
ASP中的面向对象类
分页实现方法的性能比较
asp ajax跨域提交数据
asp修改文件和文件夹的名字的代码
ASP 多关键词查询实例代码
asp被杀毒软件误删的解决方法
asp 多关键词搜索的简单实现方法
asp 根据IP地址自动判断转向分站的代码
asp dictionary对象的用法
ASP 千万级数据分页的存储过程
ASP隐藏真实文件的下载功能实现代码

ASP 中的 有关Server.Mappath详细接触


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-12   浏览: 57 ::
收藏到网摘: n/a

很多的朋友一而再,再而三的在Server.Mappath上卡壳,cnbruce也是一遍两遍地重复,还是不能全部解决,所以通过下面的举例,希望更多的朋友能恍然大悟,透彻明白过来。
先看图:

1,首先在本机E盘下面建立red文件夹,夹子内继续建立conn.asp文件,文件内容如下:

<%=Server.Mappath("database/cnbruce.mdb")%>
<%=Server.Mappath("/database/cnbruce.mdb")%>
<%=Server.Mappath("../database/cnbruce.mdb")%>

主要调试三种路径最后显示的结果。
2,在red文件夹下面建立文件夹database,该夹子内部存放cnbruce.mdb文件。
所以现在可以很肯定的知道数据库文件的绝对路径是:E:/red/database/cnbruce.mdb
以上应该没有问题吧,很明白的继续往下看,不明白的赶快学下windows操作系统 -_-!
3,为了进行比较对照,继续在red文件夹下面建立blue文件夹,该夹子内部存放同样的conn.asp文件

<%=Server.Mappath("database/cnbruce.mdb")%>
<%=Server.Mappath("/database/cnbruce.mdb")%>
<%=Server.Mappath("../database/cnbruce.mdb")%>

4,当然很重要的就是对red文件夹进行虚拟目录的设定。方法是在red文件夹上右键鼠标,选择“共享...”,弹出窗口中继续选择“Web共享”标签,选择“共享这个文件夹”,别名设为“red”。最后“确定”。

5,OK,现在就可以来调试两个conn.asp文件了。
先看red文件夹下面的,输入的URL应该是:http://localhost/red/conn.asp

观看结果可以知道其中只有一个正确,那就是
<%=Server.Mappath("database/cnbruce.mdb")%>
6,再来看red文件夹下的blue文件夹内的,URL:http://localhost/red/blue/conn.asp

观察结果,仍然有一个正确,那就是
<%=Server.Mappath("../database/cnbruce.mdb")%>
7,来总结下:为什么两次显示正确路径的不是同一代码呢?
很显然是相对路径的缘故。red文件夹下的conn.asp文件和database文件夹是兄弟关系,所以要找到cnbruce.mdb,就可以直接database/cnbruce.mdb
而blue文件夹下的conn.asp和database文件夹是侄叔关系,要找cnbruce.mdb,当然是../database/cnbruce.mdb,其中../就是到上一层。
8,那再看<%=Server.Mappath("/database/cnbruce.mdb")%>两次显示的都是一样的效果,都指向到c:\inetpub\wwwroot\下面了,那就是因为在"database"前面添加了"/",表示到达根目录,而本地的IIS虚拟根目录就是c:\inetpub\wwwroot\,这在默认Web站点属性里面有。

9,注意,再看!一直都是在本地的,那上传到网络上有是怎么样呢?
首先,要正确清醒地知道conn.asp连接文件和*.mdb数据库文件的地址关系
接着,选择正确的Server.Mappath转换方法
建议,最好不采用"/"路径。因为这涉及到虚拟主机和非虚拟主机的问题。
所谓虚拟主机,比如我本人的站点,其虚拟的根目录就是网站本身的根目录,不存在转向到c:\inetpub\wwwroot\的问题。
可以调试
http://www.cnbruce.com/red/conn.asp
http://www.cnbruce.com/red/blue/conn.asp
可以看出:采用"/"的时候的路径显示就是本站的根地址。
10,一定要注意!
万里长征已经到最后了,说什么也要支持住~!
我们虽然知道了conn.asp文件内容的写法,但在我们引用的时候应该要注意include包含文件的实质:被包含文件是在包含文件中执行显示的
所以,无论conn.asp放在哪里,无论conn.asp的内容如何,最后都是取决于包含该文件的文件位置和数据库的位置关系