首页 > 编程 > ASP > 正文

ASP替换、保存远程图片实现代码

2024-05-04 11:10:06
字体:
来源:转载
供稿:网友

这篇文章主要分享了ASP替换、保存远程图片的函数代码,需要的朋友可以参考下

ASP通过函数来实现替换、保存远程图片,完成自动采集图片、提取图片的功能,函数中自动判断重复图片,智能分析链接路径,并转成成相对的图片地址保存在你指定的网站目录中,我们可将此函数用在后台的编辑器中,当你复制了含有图片的内容后,本代码会自动帮你上传图片。同时本代码也是采集程序中的重要处理函数,函数代码如下:

 

 
  1. Function ReplaceSaveRemoteFile(ConStr,strInstallDir,strChannelDir,SaveTf,TistUrl) 
  2. If ConStr="$False$" or ConStr="" or strInstallDir="" or strChannelDir="" Then 
  3. ReplaceSaveRemoteFile=ConStr 
  4. Exit Function 
  5. End If 
  6. Dim TempStr,TempStr2,TempStr3,Re,Matches,Match,Tempi,TempArray,TempArray2 
  7. Set Re = New Regexp 
  8. Re.IgnoreCase = True 
  9. Re.Global = True 
  10. Re.Pattern ="]>" 
  11. Set Matches =Re.Execute(ConStr) 
  12. For Each Match in Matches 
  13. If TempStr<>"" then 
  14. TempStr=TempStr & "$Array$" & Match.Value 
  15. Else 
  16. TempStr=Match.Value 
  17. End if 
  18. Next 
  19. If TempStr<>"" Then 
  20. TempArray=Split(TempStr,"$Array$"
  21. TempStr="" 
  22. For Tempi=0 To Ubound(TempArray) 
  23. Re.Pattern ="src/s*=/s*.+?/.(gif|jpg|bmp|jpeg|psd|png|svg|dxf|wmf|tiff)" 
  24. Set Matches =Re.Execute(TempArray(Tempi)) 
  25. For Each Match in Matches 
  26. If TempStr<>"" then 
  27. TempStr=TempStr & "$Array$" & Match.Value 
  28. Else 
  29. TempStr=Match.Value 
  30. End if 
  31. Next 
  32. Next 
  33. End if 
  34. If TempStr<>"" Then 
  35. Re.Pattern ="src/s*=/s*" 
  36. TempStr=Re.Replace(TempStr,""
  37. End If 
  38. Set Matches=nothing 
  39. Set Re=nothing 
  40. If TempStr="" or IsNull(TempStr)=True Then 
  41. ReplaceSaveRemoteFile=ConStr 
  42. Exit function 
  43. End if 
  44. TempStr=Replace(TempStr,"""",""
  45. TempStr=Replace(TempStr,"'",""
  46. TempStr=Replace(TempStr," ",""
  47. Dim RemoteFileurl,SavePath,PathTemp,DtNow,strFileName,strFileType,ArrSaveFileName,RanNum,Arr_Path 
  48. DtNow=Now() 
  49. If SaveTf=True then 
  50. SavePath= strChannelDir & "/" & year(DtNow) & right("0" & month(DtNow),2) & "/" 
  51. response.write "链接路径:" & savepath & "" 
  52. Arr_Path=Split(SavePath,"/"
  53. PathTemp="" 
  54. For Tempi=0 To Ubound(Arr_Path) 
  55. If Tempi=0 Then 
  56. PathTemp=Arr_Path(0) & "/" 
  57. ElseIf Tempi=Ubound(Arr_Path) Then 
  58. Exit For 
  59. Else 
  60. PathTemp=PathTemp & Arr_Path(Tempi) & "/" 
  61. End If 
  62. If CheckDir(PathTemp)=False Then 
  63. If MakeNewsDir(PathTemp)=False Then 
  64. SaveTf=False 
  65. Exit For 
  66. End If 
  67. End If 
  68. Next 
  69. End If 
  70. '去掉重复图片 
  71. TempArray=Split(TempStr,"$Array$"
  72. TempStr="" 
  73. For Tempi=0 To Ubound(TempArray) 
  74. If Instr(Lcase(TempStr),Lcase(TempArray(Tempi)))<1 Then 
  75. TempStr=TempStr & "$Array$" & TempArray(Tempi) 
  76. End If 
  77. Next 
  78. TempStr=Right(TempStr,Len(TempStr)-7) 
  79. TempArray=Split(TempStr,"$Array$"
  80. '转换相对图片地址 
  81. TempStr="" 
  82. For Tempi=0 To Ubound(TempArray) 
  83. TempStr=TempStr & "$Array$" & DefiniteUrl(TempArray(Tempi),TistUrl) 
  84. Next 
  85. TempStr=Right(TempStr,Len(TempStr)-7) 
  86. TempStr=Replace(TempStr,Chr(0),""
  87. TempArray2=Split(TempStr,"$Array$"
  88. TempStr="" 
  89. '图片替换/保存 
  90. Set Re = New Regexp 
  91. Re.IgnoreCase = True 
  92. Re.Global = True 
  93. For Tempi=0 To Ubound(TempArray2) 
  94. RemoteFileUrl=TempArray2(Tempi) 
  95. If RemoteFileUrl<>"$False$" And SaveTf=True Then'保存图片 
  96. ArrSaveFileName = Split(RemoteFileurl,"."
  97. strFileType=Lcase(ArrSaveFileName(Ubound(ArrSaveFileName)))'文件类型 
  98. 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 
  99. UploadFiles="" 
  100. ReplaceSaveRemoteFile=ConStr 
  101. Exit Function 
  102. End If 
  103.  
  104. Randomize 
  105. RanNum=Int(900*Rnd)+100 
  106. 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 
  107. Re.Pattern =TempArray(Tempi) 
  108. If SaveRemoteFile(SavePath & strFileName,RemoteFileUrl)=True Then 
  109. '******************************** 
  110. PathTemp=SavePath & strFileName 
  111. ConStr=Re.Replace(ConStr,PathTemp) 
  112. Re.Pattern=strInstallDir & strChannelDir & "/" 
  113. UploadFiles=UploadFiles & "|" & Re.Replace(SavePath &strFileName,""
  114. Else 
  115. PathTemp=RemoteFileUrl 
  116. ConStr=Re.Replace(ConStr,PathTemp) 
  117. 'UploadFiles=UploadFiles & "|" & RemoteFileUrl 
  118. End If 
  119. ElseIf RemoteFileurl<>"$False$" and SaveTf=False Then'不保存图片 
  120. Re.Pattern =TempArray(Tempi) 
  121. ConStr=Re.Replace(ConStr,RemoteFileUrl) 
  122. UploadFiles=UploadFiles & "|" & RemoteFileUrl 
  123. End If 
  124. Next 
  125. Set Re=nothing 
  126. If UploadFiles<>"" Then 
  127. UploadFiles=Right(UploadFiles,Len(UploadFiles)-1) 
  128. End If 
  129. ReplaceSaveRemoteFile=ConStr 
  130. End function 

函数参数说明:

ConStr:要替换的字符串

参 数:SaveTf:是否保存文件,False不保存,True保存

参 数: TistUrl:当前网页地址

以上就是ASP替换、保存远程图片函数代码,希望对大家的学习有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表