asp下实现替换远程文件为本地文件并保存远程文件的代码

2018-09-06 13:01

阅读:328

  1、将下面的文本文件下载,并将.TXT改为remote.asp,里面有具体设置方法
复制代码 代码如下:
<%
添加资源时是否保存远程图片
ConstsSaveFileSelect=True

远程图片保存目录,结尾请不要加“/”
ConstsSaveFilePath=/images/News

远程图片保存类型
ConstsFileExt=jpggifbmppng

/////////////////////////////////////////////////////
作用:替换字符串中的远程文件为本地文件并保存远程文件
参数:
sHTML:要替换的字符串
sSavePath:保存文件的路径
sExt:执行替换的扩展名
FunctionReplaceRemoteUrl(sHTML,sSaveFilePath,sFileExt)
Dims_Content
s_Content=sHTML
IfIsObjInstalled(Microsoft.XMLHTTP)=Falsethen
ReplaceRemoteUrl=s_Content
ExitFunction
EndIf

Dimre,RemoteFile,RemoteFileurl,SaveFileName,SaveFileType,arrSaveFileNameS,arrSaveFileName,sSaveFilePaths
Setre=newRegExp
re.IgnoreCase=True
re.Global=True
re.Pattern=((httphttpsftprtspmms):(\/\/\\\\){1}((\w)+[.]){1,}(netcomcnorgcctv[0-9]{1,3})(\S*\/)((\S)+[.]{1}(&sFileExt&)))
SetRemoteFile=re.Execute(s_Content)
ForEachRemoteFileurlinRemoteFile
SaveFileType=Replace(Replace(RemoteFileurl,/,a),:,a)
arrSaveFileName=Right(SaveFileType,12)
sSaveFilePaths=sSaveFilePath&/
SaveFileName=sSaveFilePaths&arrSaveFileName
CallSaveRemoteFile(SaveFileName,RemoteFileurl)
s_Content=Replace(s_Content,RemoteFileurl,SaveFileName)
Next
ReplaceRemoteUrl=s_Content
EndFunction

////////////////////////////////////////
作用:保存远程的文件到本地
参数:LocalFileName------本地文件名
RemoteFileUrl------远程文件URL
返回值:True----成功
False----失败
SubSaveRemoteFile(s_LocalFileName,s_RemoteFileUrl)
DimAds,Retrieval,GetRemoteData
OnErrorResumeNext
SetRetrieval=Server.CreateObject(Microsoft.XMLHTTP)
WithRetrieval
.OpenGet,s_RemoteFileUrl,False,,
.Send
GetRemoteData=.ResponseBody
EndWith
SetRetrieval=Nothing
SetAds=Server.CreateObject(Adodb.Stream)
WithAds
.Type=1
.Open
.WriteGetRemoteData
.SaveToFileServer.MapPath(s_LocalFileName),2
.Cancel()
.Close()
EndWith
SetAds=nothing
EndSub

////////////////////////////////////////
作用:检查组件是否已经安装
参数:strClassString----组件名
返回值:True----已经安装
False----没有安装
FunctionIsObjInstalled(s_ClassString)
OnErrorResumeNext
IsObjInstalled=False
Err=0
DimxTestObj
SetxTestObj=Server.CreateObject(s_ClassString)
If0=ErrThenIsObjInstalled=True
SetxTestObj=Nothing
Err=0
EndFunction
%>

2、调用方法:
<!--#includefile=remote.asp-->

文章入库的地方改成下面的代码
复制代码 代码如下:
IfsSaveFileSelect=TrueThen
Rs(Content)=ReplaceRemoteUrl(ArticleContent,sSaveFilePath,sFileExt)
Else
Rs(Content)=ArticleContent
EndIf


评论


亲,登录后才可以留言!