Vbscript 经典ASP:替换字符串
以下代码:Vbscript 经典ASP:替换字符串,vbscript,asp-classic,Vbscript,Asp Classic,以下代码: Dim url url = fso.GetAbsolutePathName(objFile) 给我 C:\KB\Dev\Java.htm 然后,当我将其写为href时: Response.Write("<a href='" + url + "'>" + objFile.Name + "</a><br>") 而我需要它 file://172.20.4.107/c$/KB/Dev/Java/Java.htm 否则,该链接将对导航无
Dim url
url = fso.GetAbsolutePathName(objFile)
给我
C:\KB\Dev\Java.htm
然后,当我将其写为href时:
Response.Write("<a href='" + url + "'>" + objFile.Name + "</a><br>")
而我需要它
file://172.20.4.107/c$/KB/Dev/Java/Java.htm
否则,该链接将对导航无效
我试着:
url = Replace(url, "///", "//172.20.4.107/")
url = Replace(url, "c:", "c$")
Response.Write(url & "<br>")
url=Replace(url,“///”,“//172.20.4.107/”)
url=替换(url,“c:,“c$”)
响应。写入(url&“
”)
但是似乎什么都没有改变。您试图替换
//
,但这些字符不在url
变量中url
是C:\KB\Dev\Java.htm
请尝试以下方法:
url = Replace(url, "\", "/")
url = Replace(url, "C:/", "file://172.20.4.107/c$/")
还要记住,是最终用户的浏览器将您的C:\…
路径转换为file://...
格式。这在您的ASP代码中不会发生。这是绝对正确的,但在大多数现代浏览器中,您会遇到不同程度的问题,因为本地文件链接的超链接被阻止,因为它们存在安全风险
更可靠的解决方案是不使用本地文件链接,并完全消除风险。如果您有权访问IIS(如果您使用的是经典ASP,您可能有权以某种形式访问IIS),您可以通过创建指向远程计算机共享的虚拟目录来实现这一点,并根据需要锁定权限
假设您设置了一个虚拟目录,指向别名KB
,然后您就可以访问它了
http://yourhost/KB/dev/java.htm
您还可以调用共享KB$
,以对网络浏览器隐藏该共享
\\172.20.4.107\KB$\
\\172.20.4.107\KB$\
有用的链接