主页 > 知识库 > ReplaceSaveRemoteFile 替换、保存远程图片 的代码

ReplaceSaveRemoteFile 替换、保存远程图片 的代码

热门标签:团购网站 Mysql连接数设置 阿里云 银行业务 Linux服务器 服务器配置 科大讯飞语音识别系统 电子围栏
'==================================================
'函数名:ReplaceSaveRemoteFile
'作  用:替换、保存远程图片
'参  数:ConStr ------ 要替换的字符串
'参  数:SaveTf ------ 是否保存文件,False不保存,True保存
'参  数: TistUrl------ 当前网页地址
'==================================================
Function ReplaceSaveRemoteFile(ConStr,strInstallDir,strChannelDir,SaveTf,TistUrl)
   If ConStr="$False$" or ConStr="" or strChannelDir="" Then
      ReplaceSaveRemoteFile=ConStr
      Exit Function
   End If
   Dim TempStr,TempStr2,TempStr3,Re,Matches,Match,Tempi,TempArray,TempArray2

   Set Re = New Regexp 
   Re.IgnoreCase = True 
   Re.Global = True
   Re.Pattern ="img.+?[^\&;]>"
   Set Matches =Re.Execute(ConStr) 
   For Each Match in Matches
      If TempStr>"" then 
         TempStr=TempStr  "$Array$"  Match.Value
      Else
         TempStr=Match.Value
      End if
   Next
   If TempStr>"" Then
      TempArray=Split(TempStr,"$Array$")
      TempStr=""
      For Tempi=0 To Ubound(TempArray)
         Re.Pattern ="src\s*=\s*.+?\.(gif|jpg|bmp|jpeg|psd|png|svg|dxf|wmf|tiff)"
         Set Matches =Re.Execute(TempArray(Tempi)) 
         For Each Match in Matches
            If TempStr>"" then 
               TempStr=TempStr  "$Array$"  Match.Value
            Else
               TempStr=Match.Value
            End if
         Next
      Next
   End if
   If TempStr>"" Then
         IncludePic=1'图片新闻
      Re.Pattern ="src\s*=\s*"
      TempStr=Re.Replace(TempStr,"")
   End If
   Set Matches=nothing
   Set Re=nothing
   If TempStr="" or IsNull(TempStr)=True Then
      ReplaceSaveRemoteFile=ConStr
      Exit function
   End if
   TempStr=Replace(TempStr,"""","")
   TempStr=Replace(TempStr,"'","")
   TempStr=Replace(TempStr," ","")

   Dim RemoteFileurl,SavePath,PathTemp,DtNow,strFileName,strFileType,ArrSaveFileName,RanNum,Arr_Path
   DtNow=Now()
   If SaveTf=True then
 '***********************************
      SavePath= strChannelDir  year(DtNow)  right("0"  month(DtNow),2)  "/"
      response.write "链接路径:"  savepath  "br>"
      Arr_Path=Split(SavePath,"/")
      PathTemp=""
      For Tempi=0 To Ubound(Arr_Path)
         If Tempi=0 Then
            PathTemp=Arr_Path(0)  "/"
         ElseIf Tempi=Ubound(Arr_Path) Then
            Exit For
         Else
            PathTemp=PathTemp  Arr_Path(Tempi)  "/"
         End If
         If CheckDir(PathTemp)=False Then
            If MakeNewsDir(PathTemp)=False Then
               SaveTf=False
               Exit For
            End If
         End If
      Next
   End If

   '去掉重复图片开始
   TempArray=Split(TempStr,"$Array$")
   TempStr=""
   For Tempi=0 To Ubound(TempArray)
      If Instr(Lcase(TempStr),Lcase(TempArray(Tempi)))1 Then
         TempStr=TempStr  "$Array$"  TempArray(Tempi)
      End If
   Next
   TempStr=Right(TempStr,Len(TempStr)-7)
   TempArray=Split(TempStr,"$Array$")
   '去掉重复图片结束

   '转换相对图片地址开始
   TempStr=""
   For Tempi=0 To Ubound(TempArray)
      TempStr=TempStr  "$Array$"  DefiniteUrl(TempArray(Tempi),TistUrl)
   Next
   TempStr=Right(TempStr,Len(TempStr)-7)
   TempStr=Replace(TempStr,Chr(0),"")
   TempArray2=Split(TempStr,"$Array$")
   TempStr=""
   '转换相对图片地址结束
    '图片替换/保存
   Set Re = New Regexp
   Re.IgnoreCase = True 
   Re.Global = True
   For Tempi=0 To Ubound(TempArray2)
      RemoteFileUrl=TempArray2(Tempi)
      If RemoteFileUrl>"$False$" And SaveTf=True Then'保存图片
         ArrSaveFileName = Split(RemoteFileurl,".")
     strFileType=Lcase(ArrSaveFileName(Ubound(ArrSaveFileName)))'文件类型
         If strFileType="asp" or strFileType="asa" or strFileType="aspx" or strFileType="cer" or strFileType="cdx" or strFileType="exe" or strFileType="rar" or strFileType="zip" then
            UploadFiles=""
            ReplaceSaveRemoteFile=ConStr
            Exit Function
         End If

         Randomize
         RanNum=Int(900*Rnd)+100
     strFileName = year(DtNow)  right("0"  month(DtNow),2)  right("0"  day(DtNow),2)  right("0"  hour(DtNow),2)  right("0"  minute(DtNow),2)  right("0"  second(DtNow),2)  ranNum  "."  strFileType
         Re.Pattern =TempArray(Tempi)

     If SaveRemoteFile(SavePath  strFileName,RemoteFileUrl)=True Then
'********************************
            PathTemp=SavePath  strFileName 
            ConStr=Re.Replace(ConStr,PathTemp)
            Re.Pattern=strInstallDir  strChannelDir 
            UploadFiles=UploadFiles  "|"  Re.Replace(SavePath strFileName,"")
            Response.Flush()
            response.write " nbsp;nbsp;nbsp;图片保存地址:"  PathTemp  "br>"
            if Thumb_WaterMark=1 then call SKThumb.AddWaterMark(PathTemp)'水印
         Else
            PathTemp=RemoteFileUrl
            ConStr=Re.Replace(ConStr,PathTemp)
            'UploadFiles=UploadFiles  "|"  RemoteFileUrl
         End If
      ElseIf RemoteFileurl>"$False$" and SaveTf=False Then'不保存图片
         Re.Pattern =TempArray(Tempi)
         ConStr=Re.Replace(ConStr,RemoteFileUrl)
         UploadFiles=UploadFiles  "|"  RemoteFileUrl
      End If
   Next   
   Set Re=nothing
   If UploadFiles>"" Then
      UploadFiles=Right(UploadFiles,Len(UploadFiles)-1)
   End If
   ReplaceSaveRemoteFile=ConStr
End function
您可能感兴趣的文章:
  • 用php获取远程图片并把它保存到本地的代码
  • php 远程图片保存到本地的函数类
  • ASP保存远程图片到本地 同时取得第一张图片并创建缩略图的代码
  • php下保存远程图片到本地的办法

标签:大理 枣庄 萍乡 江苏 衢州 蚌埠 衡水 广元

巨人网络通讯声明:本文标题《ReplaceSaveRemoteFile 替换、保存远程图片 的代码》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266