本日志标题:ASP+XMLHTTP检测文件是否存在(掉链)        [2007-1-25] Bookmark and Share

因为www.164.cc的音乐文件来自互联网搜索,各种原因使得音乐文件经常会掉链或者就成了死链,要解决这个问题必须先知道哪些歌曲链接掉了。

检测远端文件是否存在,使用XMLHTTP与远端文件交互返回的Status而做出决定

有关Status,参看 http://www.cnbruce.com/blog/showlog.asp?cat_id=34&log_id=1140

已经完成功能的函数如下,此前请确保本地已经安装有 msxml3.dll

(在电脑上注册这个文件,请点击“开始>运行”然后输入:regsvr32 msxml3.dll


Function chku(murl)
on error resume next
Set xmlHttp = Server.CreateObject("Microsoft.XMLHTTP")
xmlHttp.open "GET",murl,false
xmlHttp.send
    if xmlHttp.Status <> 200 then
        chku=false
    else
        chku=true
    end if
End Function


自定义的函数chku(),通过XMLHTTP对象于相关文件(路径)交互返回状态值Status,通过该Status值做出判断函数输出。

完整的检测代码如下:


<%
url=request.querystring("u")

Function chku(murl)
on error resume next
Set xmlHttp = Server.CreateObject("Microsoft.XMLHTTP")
xmlHttp.open "GET",murl,false
xmlHttp.send
    if xmlHttp.Status <> 200 then
        chku=false
    else
        chku=true
    end if
End Function

if chku(url) then
    response.write(url&"(链接正常)")
else
    response.write(url&"(掉链、坏链、死链)")
end if
%>


测试网页时带参数u,参数u的值即是远程文件(路径)比如:

http://www.cnbruce.com/test/ajax/chku.asp?u=http://www.164.cc

http://www.cnbruce.com/test/ajax/chku.asp?u=http://www.dw8.cn/nihaohello


在百度搜索完整的ASP+XMLHTTP检测文件是否存在(掉链)内容,或者用Google搜索相关的更多内容

By [cnbruce] at 0:53:36 | 评论 [51] | 浏览 [19655] | TrackBack| 返回顶部

About Comments
代码虽然不长,但用AJax检测文件是否吊链却非常有意义。
By [HmilyHeart] at 2007-1-25 17:08:46
嗯,学习了
By [nalimai] at 2007-1-25 18:01:07
应该用HEAD方式获取远端文件是否存在的信息。按照W3C规则,GET之后远端服务器会发送数据流,随后又要停止发送,所以这段代码有浪费服务器资源之嫌。
By [ashi] at 2007-2-12 20:34:23
这些都是只能测HTTP协议的吗,其他协议我试了都是坏链,有没有什么方法可以做到~!
By [bym2000] at 2007-12-10 18:14:20


Post a Comment
呢称: 验证码: 
禁止笑脸转换 禁止UBB | 缩放输入框:6 5 | [Ctrl+Enter提交](1000个字符限制)