文件:ks.commoncls.asp
替换这个函数.
'--------------------------冉:尝试修复保存远程图片核心函数-----------------
'**************************************************
'函数名:SaveBeyondFile
'作 用:保存远程文件到本地
'参 数:LocalFile 本地文件,BFU远程文件
'返回值:无
'**************************************************
Public Function ReplaceBeyondUrl(ReplaceContent, SaveFilePath)
Dim re, BeyondFile,BFU_IMG,BFU, SaveFileName,SaveFileList,Ext
Set re = New RegExp
re.IgnoreCase = True
re.Global = True
'匹配<img src="http://aaa">或<img src='http://abc/abcd/a.gif'' 或<img src=http://baidu.com/adsfad/>三种HTML写法的图片
re.Pattern = "<img\s+[^>]*src=(""(http:\/\/[^""]+)""|'(http:\/\/[^']+)'|(http:\/\/[^""'>\s]+))[^>]*>"
Set BeyondFile = re.Execute(ReplaceContent)
Set re = Nothing
For Each BFU_IMG In BeyondFile
'这句很重要,是正则表达式子匹配,匹配src=后面的图片地址,不用修改,如果直接用BFU是带有<img> 等其他字符的
BFU=BFU_IMG.SubMatches(1) & BFU_IMG.SubMatches(2) & BFU_IMG.SubMatches(3)
'下面判断了一下,如果有扩展名的正常类型的图片存为这个扩展名,如果不带扩展名的图片变为.gif图片,主要是为了让动态图片能够显示,静态的JPG图片改为GIF扩展名照样显示,完全不影响。
If Instr(SaveFileList,BFU)=0 Then
Ext=Mid(BFU, InStrRev(BFU, "."))
If Ext = ".jpg" or Ext = ".gif" or Ext = ".png" or Ext = ".bmp" or Ext=".jpeg" then
SaveFileName = Year(Now()) & Month(Now()) & Day(Now()) & MakeRandom(10) & Ext
else
SaveFileName = Year(Now()) & Month(Now()) & Day(Now()) & MakeRandom(10) & ".gif"
end if
'If Instr(BFU,Setting(2))<=0 Then '去掉这里.就可以保存自己的端口测试网址.比如:http://pc:88
Call SaveBeyondFile(SaveFilePath&SaveFileName,BFU)
ReplaceContent = Replace(ReplaceContent, BFU, SaveFilePath & SaveFileName) '---千万去掉附带自己的网址.不合理.即:ks.setting(2)
'End If
End If
SaveFileList=SaveFileList & "," & BFU
Next
ReplaceBeyondUrl = ReplaceContent
End Function
'--------------------------冉:结束修复保存图片.