经典ASP getPathName和getName错误

时间:2012-11-14 07:34:56

标签: asp-classic

我通常使用PHP开发网站。但现在我必须使用ASP Classic,因为我的客户已经有一个网站,然后我必须维护网站。我已将所有网站移至我的新主机。但是这段代码有错误:

cPath=getPathName(Server.mappath(Request.ServerVariables("PATH_INFO")))

错误消息是:

  

Microsoft VBScript运行时错误'800a000d'

     

类型不匹配:'getPathName'

调用getName代码时会显示一些错误。

请帮助我该怎么做。

1 个答案:

答案 0 :(得分:1)

据我所知,经典ASP或VBScript不具备与PHP getPathName()getName()函数相同的功能。

getPathName()给出一个字符串并且实际上我认为它不存在时,我无法理解cPath = Server.MapPath(Request.ServerVariables("PATH_INFO")) 的含义是什么,所以只有:{/ p>

getName()

该变量将包含当前正在执行的ASP文件的完整物理路径。

对于Function GetOnlyName(filePath) Dim slashIndex slashIndex = InStrRev(filePath, "\") If slashIndex<1 Then slashIndex = InStrRev(filePath, "/") End If If slashIndex>0 Then ExtractFileName = Mid(filePath, slashIndex + 1, Len(filePath) - slashIndex + 1) Else ExtractFileName = filePath End If End Function ,您可以编写自定义函数:

cName = GetOnlyName(Server.MapPath(Request.ServerVariables("PATH_INFO")))

然后像这样使用它:

Option Explicit

该变量仅包含ASP文件的名称。

为了记录,为避免混淆类型不匹配错误,始终将此放在脚本之上:

Dim

然后总是使用getPathName语句声明所有变量,就像上面的函数一样。有了这个,尝试使用{{1}}会产生“变量未定义”错误,这更有意义。