|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
SQLServer是基于服务器端的中型的数据库,可以适合大容量数据的应用,在功能上管理上也要比Access要强得多。在处理海量数据的效率,后台开发的灵活性,可扩展性等方面强大。服务器|下载|页面*writtenbyJaron,2003-11-12*/
/*原出处:CSDN文档中央http://www.csdn.net/developWEB手艺中文网http://www.jaron.cn*/
/*转载请说明出处和保存此版权信息*/
/*接待利用SiteManager-CMSServer网站办理体系http://sitemanager.cnzone.net*/
/*主动创立目次,主动将原文件名改名,文件格局的限定和其他功效的一些优化
/*主动保留网页文件中http://....格局的图片到当地
程序完成功效:主动将远程页面的文件中的图片下载到当地服务器
将下文保留为save2local.asp
测试:save2local.asp?url=http://ent.sina.com.cn/s/m/2003-11-11/1411231388.html
<%
参数设置入手下手
url=request("url")
localaddr=server.MapPath("images_remote/")保留到当地的目次
localdir="images_remote/"http会见的绝对路径
AllowFileExt="jpg|bmp|png|gif"撑持的文件名格局
参数设置终了
ifcreatedir(localaddr)=falsethen
response.Write"创立目次失利,请反省目次权限"
response.End
endif
response.WriteConvert2LocalAddr(url,localaddr,localdir)
functionConvert2LocalAddr(url,localaddr,localdir)
参数申明
url页面地点
localaddr保留当地的物理地点
localdir绝对路径
strContent=getHTTPPage(url)
SetobjRegExp=NewRegexp
objRegExp.IgnoreCase=True
objRegExp.Global=True
objRegExp.Pattern="<img.+?>"
SetMatches=objRegExp.Execute(strContent)
ForEachMatchinMatches
RetStr=RetStr&GetRemoteImages(Match.Value)
Next
ImagesArray=split(RetStr,"||")
RemoteImage=""
LocalImage=""
fori=1toubound(ImagesArray)
ifImagesArray(i)""andinstr(RemoteImage,ImagesArray(i))<1then
fname=baseurl&cstr(i&mid(ImagesArray(i),instrrev(ImagesArray(i),".")))
ImagesFileName=ImagesArray(i)
AllowFileExtArray=split(AllowFileExt,"|")
isGetFile=false
fortmp=0toubound(AllowFileExtArray)
iflcase(GetFileExt(ImagesFileName))=ALlowFileExtArray(tmp)then
isGetFile=True
endif
next
ifisGetFile=truethen
newfilename=GenerateRandomFileName(fname)
callSave2Local(ImagesFileName,localaddr&"/"&newfilename)
RemoteImage=RemoteImage&"||"&ImagesFileName
LocalImage=LocalImage&"||"&localdir&newfilename
endif
endif
next
arrnew=split(LocalImage,"||")
arrall=split(RemoteImage,"||")
fori=1toubound(arrnew)
strContent=replace(strContent,arrall(i),arrnew(i))
next
Convert2LocalAddr=strContent
endfunction
functionGetRemoteImages(str)
SetobjRegExp1=NewRegexp
objRegExp1.IgnoreCase=True
objRegExp1.Global=True
objRegExp1.Pattern="http://.+?"
setmm=objRegExp1.Execute(str)
ForEachMatch1inmm
tmpaddr=left(Match1.Value,len(Match1.Value)-1)
GetRemoteImages=GetRemoteImages&"||"&replace(replace(tmpaddr,"""",""),"","")
next
endfunction
functiongetHTTPPage(url)
onerrorresumenext
dimhttp
sethttp=Server.createobject("Msxml2.XMLHTTP")
Http.open"GET",url,false
Http.send()
ifHttp.readystate4thenexitfunction
getHTTPPage=bytes2BSTR(Http.responseBody)
sethttp=nothing
iferr.number0thenerr.Clear
endfunction
Functionbytes2BSTR(vIn)
dimstrReturn
dimi,ThisCharCode,NextCharCode
strReturn=""
Fori=1ToLenB(vIn)
ThisCharCode=AscB(MidB(vIn,i,1))
IfThisCharCode<&H80Then
strReturn=strReturn&Chr(ThisCharCode)
Else
NextCharCode=AscB(MidB(vIn,i+1,1))
strReturn=strReturn&Chr(CLng(ThisCharCode)*&H100+CInt(NextCharCode))
i=i+1
EndIf
Next
bytes2BSTR=strReturn
EndFunction
functiongetHTTPimg(url)
onerrorresumenext
dimhttp
sethttp=server.createobject("MSXML2.XMLHTTP")
Http.open"GET",url,false
Http.send()
ifHttp.readystate4thenexitfunction
getHTTPimg=Http.responseBody
sethttp=nothing
iferr.number0thenerr.Clear
endfunction
functionSave2Local(from,tofile)
dimgeturl,objStream,imgs
geturl=trim(from)
imgs=gethttpimg(geturl)
SetobjStream=Server.CreateObject("ADODB.Stream")
objStream.Type=1
objStream.Open
由于ASP提供的是一对多的服务,所以用户的一些特殊需求很难得到满足。 |
|