亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

網站圖片掃描類

2019-11-18 19:37:29
字體:
來源:轉載
供稿:網友

Scan.inc
<%
'說明:這是我第一次編寫應用類,其中不當之處請多多指教!QQ:1168064
'屬性和方法
'1、ScanType:掃描的類型。默認值:1。值:0 掃描文件和數據庫 1 掃描文件 2 掃描數據庫。
'2、Conn,Table,ColImg,ColID:當掃描數據庫時用到,分別為連接字符串、表名、圖片列名、圖片對應的ID列名
'3、List:顯示類型。默認值:0。值:0 失效圖片 1 網絡圖片  2 有效圖片 3 所有
'4、ScanText:掃描的圖片類型。默認值:asp/html/htm。值:文件擴展名,中間用"/"分隔。
'5、Path:掃描的路徑:默認為網站根目錄,請使用相對路徑。例如"/dsj"
'6、Scan():方法。根據設置進行掃描
'7、File:保存掃描的所以信息。在Scan()方法后調用
'8、Folders:掃描的文件夾個數
'9、Files:掃描的文件數。
'10、TotalSize:目錄的總計大小。自動顯示G,M,B。
'11、Images:掃描文件中的圖片個數
'12、Exists:失效個數
'13、DbImg:數據庫中圖片個數
'14、TotalImg:掃描的所以圖片個數
'15、RunTime:掃描過程的時間。單位毫秒
'16、關于File的使用:
'    For Each Fn In ObjName.file …… Next
'    Fn.FileName:圖片名稱,包含路徑
'    Fn.Belong:圖片所在文件或數據庫(文件用"|"分開)
'    Fn.Exists:是否有效。0為失效 1 為有效 -1為非本地路徑,不能判斷。
Option Explicit
Class MCScanImg
dim  File,ScanType,Conn,Table,ColId,ColImg,fso,Path,List,ScanText,Spath,Version
dim Folders,Files,TotalSize,Images,Exists,sFiles,Start,EndT,RunTime,DbImg,TotalImg,Filter
PRivate Sub Class_Initialize
Set File = Server.Createobject("ScrSet FSO = CreateObject("Scripting.FileSystemObject")
ScanType=1
Conn=""
Table=""
ColImg=""
ColId=""
Path ="/"
sPath = Server.MapPath("/")
List=0
ScanText="asp/htm/html"
Folders=0
Files=0
TotalSize=0
Images=0
DbImg=0
Exists=0
sFiles=0
TotalImg=0
Start=Timer
Endt=Timer
Runtime=0
Filter="src=(.[^/>^/&]*)(.gif|.jpg)"
Version="1.00"
End Sub

Private Sub Class_Terminate 
Set File=Nothing
Set FSO = Nothing
End Sub

Public Function Scan() '開始掃描
if left(path,1)="/" then
path=Spath&Replace(path,"/","/")
else
Path=Spath&"/"&Replace(path,"/","/")
end if
If ScanType=1 then
Scanfile(Path)
ElseIf ScanType=2 Then
ScanDb()
Else
ScanFile(Path)
ScanDb()
End If
EndT=timer
RunTime=FormatNumber(EndT-Start)*1000
TotalSize=shb(TotalSize)
TotalImg=DbImg+Images
End Function

Private Sub ScanDB() '掃描數據庫。這里的路徑難于判斷,請在InsDb中更改(If AddNum=0 后)
Dim Rs,RetStr,ReBel,SQL
SQL="Select "&ColID&","&ColIMG&" From "&Table&" Order by "&ColID&" DESC"
'On Error Resume Next
If Conn ="" OR Table="" OR ColID="" OR ColIMG = "" Then
Exit Sub
Else
Set Rs = Server.CreateObject("ADODB.RecordSet")
Rs.Open SQL,conn,3,3

While Not Rs.EOF
RetStr=Rs(1)
ReBel="表"&Table&"中的"&ColImg&"列(ID:"&Rs(0)&")"
InsDb RetStr,ReBel,0,""
Rs.MoveNext
Wend
Rs.Close
Set Rs=Nothing
End If
End Sub

Private Sub ScanFile(PathStr) '掃描文件。遞歸
Dim f,ff,fn,fd,fdn,RealPath,fr,fc
'Response.write PathStr&"<br>"
Set ff = fso.getfolder(pathstr)
Set f = ff.files
Set fd = ff.subfolders
If f.Count >0 Then
For Each fn In f
Files=Files+1
TotalSize=TotalSize+fn.Size
If ChkFileName(fn.Name) Then
sFiles=sFiles+1
If Right(PathStr,1) <> "/" Then
RealPath=PathStr&"/"&fn.Name
Else
RealPath=PathStr&fn.Name
End If
Set fr = FSO.OpenTextFile(RealPath,1)
fc=fr.ReadAll
'response.write RealPath&"<br>"
RegExpTest filter,fc,RealPath
End If
Next
End If

If fd.Count> 0 Then
For Each fdn In fd
Folders=Folders+1
dim temp
if right (PathStr,1) <> "/" then
temp=PathStr&"/"&fdn.Name
else
temp=PathStr&fdn.Name
end if
ScanFile(temp)
Next
End If
End Sub

Private Sub RegExpTest(Patrn, Strng,PathStr) '查找圖片
  Dim RegEx, Match, Matches,Chk,ReImg,RetStr,ReBel,TheFile
  Set RegEx = New RegExp
  RegEx.Pattern = Patrn 
  RegEx.IgnoreCase = True
  RegEx.Global = True
  Set Matches = RegEx.Execute(Strng)
  For Each Match in Matches 
    RetStr = Replace(Match.Value,"src=","")
 RetStr = Replace(RetStr,"'","")
 RetStr = Replace(RetStr,"""","")
 Chk = 0
 
 ReBel=GetFn(PathStr)
 InsDb RetStr,ReBel,1,PathStr
  Next
End Sub

Private Function GetExt(FullPath) '獲得文件擴展名,用于判斷是否是掃描的文件類型
Dim Temp
If FullPath <> "" Then
Temp = Mid(FullPath,InStrRev(FullPath, "/")+1)
If InStr(Temp,".")>0 Then
GetExt=Mid(Temp,InStrRev(Temp, ".")+1)
Else
GetExt=Temp
End If
Else
GetExt = ""
End If
End  Function

Private Function ChkFileName(Str) '檢測文件是否是要掃描的文件類型
Dim ar,i,fn
fn=GetExt(str)
ar=Split(ScanText,"/")
ChkFileName=False
For i=0 To ubound(ar)
If lCase(fn) =lCase(Trim(ar(i))) Then
ChkFileName=True
Exit Function
End If
Next
End Function

Private Function shb(n) '顯示字節數
If n<1024 Then
shb = n&"字節"
ElseIf n>1024 and n<1024*1024 Then
shb = formatnumber(n/1024,2)&"K"
ElseIf n>=1024*1024 and n <1024*1024*1024 Then
shb = formatnumber(n/(1024*1024),2)&"M"
Else
shb =formatnumber(n/(1024*1024*1024),2)&"G"
End If
End Function

Private Sub InsDb(RetStr,ReBel,AddNum,PathStr) '分析圖片是否有效,并添加到字典對象中
dim chk,ReImg,TheFile
If InStr(RetStr,"
http://")>0 OR Instr(RetStr,"ftp://")>0 Then
ReImg=RetStr
Chk=-1
Else
RetStr = Replace(RetStr,"/","/")
If (Left(RetStr,1) = "/" ) Then
RetStr=SPath&Retstr
ElseIf Left(RetStr,3) = "../" Then
dim temp
temp=GetPath(PathStr)
Do Until Left(RetStr,3) <> "../"  '處理相對路徑
Temp=Fso.GetParentFolderName(Temp)
RetStr=Mid(RetStr,4,len(RetStr)-3)
Loop
RetStr=Temp&"/"&RetStr
Else
If AddNum=0 Then
if left(RetStr,1)="/" then
RetStr=Path&"/"&Retstr
Else
RetStr=path&Retstr
End If
else
RetStr=getpath(Pathstr)&RetStr
End IF
End If

If FSO.FileExists(RetStr) Then
Chk=1
End If
ReImg=GetFn(RetStr)
End If 
If Chk=0 Then
Exists=Exists+1
End if
If File.Exists(ReImg) then
Set TheFile=File.Item(ReImg)
If TheFile.Belong <> ReBel Then
TheFile.Belong=TheFile.Belong&"|"&Rebel
End If
Else
If (List=0 AND Chk =0) OR (List=1 And Chk=-1) Or (List=2 And Chk=1 ) Or List=3 Then
Set TheFile= New FileInfo
TheFile.FileName=ReImg
TheFile.Belong=ReBel
TheFile.Exists=Chk
File.Add ReImg,TheFile
Select Case ScanType
Case 1 Images=Images+1
Case 2 DbImg = DbImg+1
Case Else
If AddNum = 0 Then
DbImg = DbImg+1
Else
Images=Images+1
End If
End Select
End If
End If
End Sub

Private Function GetPath(Str) '獲得文件路徑
'response.write str&"<br>"
Dim Temp,EndB
Temp=Replace(Str,"/","/")
EndB=InstrRev(Temp,"/")
If EndB = 0 Then
GetPath=SPath
Else
GetPath=Left(Temp,EndB)
End If
'response.write GetPath&"<BR>"
End Function

Private Function GetFn(Str) '獲得文件的相對路徑名
Dim Temp
Temp=Str
'response.write temp&"<br>"
Temp=Replace(Str,SPath,"")
Temp=Replace(Temp,"/","/")
GetFn=Temp
End Function

End Class

Class FileInfo

Dim FileName,Belong,Exists

Private Sub Class_Initialize
FileName=""
Belong=""
Exists=""
End sub

End Class
%>
應用舉例
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "<%
  
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>無標題文檔</title>
<link rel="stylesheet" href="
CSS.css">
</head>

<body>
<form name="form1" method="post" action="scan.asp">
  <table width="60%"  border="0" align="center" cellspacing="1" bgcolor="#003366">
    <tr bgcolor="#FFFFFF">
      <td height="30" colspan="2" bgcolor="#00CCFF"><div align="center">掃描圖片</div></td>
    </tr>
    <tr bgcolor="#FFFFFF">
      <td width="26%" height="20"><div align="right">掃描文件夾:</div></td>
      <td width="74%" height="20"><select name="Path" id="Path">
        <option value="/">/</option>
<%
dim fso,f,fd,p
  p=server.MapPath("/")
  set fso=Server.CreateObject("Scripting.FileSystemObject")
  function showpath(str)
  set f=fso.getfolder(str)
  set fd=f.subfolders  
  for each fds in fd
  Response.Write "<option value="&Replace(Replace(fds,p,""),"/","/")&">"&Replace(Replace(fds,p,""),"/","/")&"</option>"
  set ff=fso.getfolder(fds)
  set ffd=ff.subfolders
  if ffd.count>0 then
  showpath(fds)
  end if
  next
  end function
  showpath(p)%>
      </select></td>
    </tr>
    <tr bgcolor="#FFFFFF">
      <td height="20"><div align="right">掃描類型:</div></td>
      <td height="20"><input type="radio" name="SType" value="0">
        所有
        <input name="SType" type="radio" value="1" checked>
        掃描文件
        <input type="radio" name="SType" value="2">
        掃描數據庫</td>
    </tr>
    <tr bgcolor="#FFFFFF">
      <td height="20"><div align="right">顯示類型:</div></td>
      <td height="20"><input name="LType" type="radio" value="0" checked>
        失效
        <input type="radio" name="LType" value="1">
        網絡路徑
        <input type="radio" name="LType" value="2">
        有效
        <input type="radio" name="LType" value="3">
        所有</td>
    </tr>
    <tr bgcolor="#FFFFFF">
      <td height="20"><div align="right">文件類型:</div></td>
      <td height="20"><input name="Ext" type="checkbox" id="Ext" value="asp" checked>
        Asp
          <input name="Ext" type="checkbox" id="Ext" value="htm" checked>
          Htm
        <input name="Ext" type="checkbox" id="Ext" value="html" checked>
          Html
        <input name="Ext" type="checkbox" id="Ext" value="inc" checked>
        Inc</td>
    </tr>
    <tr bgcolor="#FFFFFF">
      <td height="20"><div align="right">數據庫:</div></td>
      <td height="20">表:
        <input name="Tab" type="text" id="Tab" size="5" class="allinput">
        圖片ID列:
        <input name="ColID" type="text" id="ColID" size="5" class="allinput">
        圖片路徑列:
        <input name="ColImg" type="text" id="ColImg" size="5" class="allinput">        </td>
    </tr>
    <tr bgcolor="#FFFFFF">
      <td height="40" colspan="2"><div align="center">
        <input type="submit" value=" 開始掃描 " class="allinput">
      </div></td>
    </tr>
  </table>
</form>
</body>
</html>
scan.asp
<!--#include file="scan.inc"-->
<%
dim mcs,fn,fb
%>
<link href="css.css" rel="stylesheet">
<table width="70%"  border="0" align="center" cellpadding="5" cellspacing="1" bgcolor="#003366">
  <tr bgcolor="#AAAAFF">
    <td width="30%" height="30">圖片名稱</td>
    <td width="39%" height="30">所在位置</td>
    <td width="31%" height="30">有效</td>
  </tr>
<%
Function GetVar(ID,Default)
GetVar = Default
If Request(ID) <> "" Then
GetVar = Request(ID)
End IF
End Function
Dim SType,LType,Path,Ext,Conn,Tab,ColID,ColImg
SType=GetVar("SType",1)
LType=GetVar("LType",3)
Path=GetVar("Path","/")
Ext = Trim(Replace(GetVar("Ext","htm,html,asp,inc"),", ","/"))
Conn=GetVar("Conn","")
Tab=GetVar("Tab","")
ColID=GetVar("ColID","")
ColImg=GetVar("ColImg","")
Conn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("/db1.mdb")
set mcs= new mcscanimg
mcs.ScanType=SType
mcs.list=LType
mcs.ScanText=Ext
mcs.conn=Conn
mcs.Path=Path
mcs.table=Tab
mcs.ColID=ColID
mcs.ColImg=ColImg
mcs.scan()
for each fn in mcs.file
set fb=mcs.file(fn)
%>
  <tr bgcolor="#FFFFFF">
    <td valign="top"><%=fb.filename%></td>
    <td><%=Replace(fb.Belong,"|","<br>")%></td>
    <td><%
 if fb.Exists=1 then
 response.Write "有效的路徑"
 elseif fb.exists=0 then
 response.Write "失效的路徑"
 else
 response.Write "非本地路徑"
 end if
 %></td>
  </tr>
  <%
next
%>
  <tr bgcolor="#FFFFFF">
    <td colspan="3">共掃描文件:<%=mcs.files%>;掃描文件夾:<%=mcs.folders%>;總計大?。?lt;%=mcs.totalsize%><br>掃描圖片個數:<%=mcs.images&";數據庫圖片個數:"&mcs.dbimg&";圖片總數:"&mcs.TotalImg%>;失效個數:<%=mcs.exists%>個<br>運行時間:<%=mcs.runtime%>毫秒</td>
  </tr>
</table>
<%set mcs=nothing%>


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产一区二区三区视频免费| 国产精品成人一区二区三区吃奶| 91免费精品视频| 亚洲色图色老头| 久久久亚洲国产天美传媒修理工| 日韩高清不卡av| 成人国产精品一区二区| 色综合亚洲精品激情狠狠| 日韩国产在线看| 日韩一区二区福利| 视频在线一区二区| 日韩成人中文电影| 久久久精品一区| 日本精品久久中文字幕佐佐木| 久久免费高清视频| 51午夜精品视频| 日韩大陆毛片av| 欧美日韩精品在线观看| 欧美一区亚洲一区| 成人精品一区二区三区电影黑人| 欧美日韩国产丝袜美女| 久久99精品久久久久久青青91| 欧美极品美女电影一区| 日韩av一区二区在线| 亚洲片在线观看| 亚洲第一精品久久忘忧草社区| 亚洲午夜激情免费视频| 日韩av不卡在线| 欧美日韩激情网| 日韩精品一区二区三区第95| 日韩av在线天堂网| 日韩成人中文电影| 国内精品久久久久久久| 国产精品aaa| 日本精品免费观看| 亚洲国产精品va在线看黑人| 日韩成人av网址| 国产精品96久久久久久又黄又硬| 国产91精品久久久久久久| 精品久久久香蕉免费精品视频| 国产精品久久久av久久久| 国产精品高清在线| 亚洲电影在线观看| 韩国精品久久久999| 亚洲色图第三页| 亚洲国模精品一区| 福利一区福利二区微拍刺激| 国产成人综合一区二区三区| 国产97人人超碰caoprom| 国产精品久久久久久久一区探花| 成人在线免费观看视视频| 精品中文字幕久久久久久| 欧美日韩福利在线观看| 色偷偷噜噜噜亚洲男人的天堂| 国产精品入口夜色视频大尺度| 91啪国产在线| 亚洲精品一区av在线播放| 亚洲性猛交xxxxwww| 亚洲综合在线做性| 欧美日韩在线影院| 久久精品久久久久| 成人综合国产精品| 亚洲乱亚洲乱妇无码| 精品久久久久久久久中文字幕| 在线播放国产一区二区三区| 国产欧美在线播放| 久久久www成人免费精品张筱雨| 亚洲天堂av在线免费| 一区二区三区www| 亚洲欧美日韩中文在线制服| 欧美激情视频在线观看| 精品小视频在线| 欧美大胆在线视频| 久久网福利资源网站| 日韩免费观看高清| 亚洲欧美成人网| 国产免费亚洲高清| 亚洲第一区第二区| 在线看欧美日韩| 久久久999精品视频| 日韩欧美在线视频| 亚洲已满18点击进入在线看片| 亚洲精品视频二区| 成人疯狂猛交xxx| 色偷偷9999www| 九九热视频这里只有精品| 国产精品久久久久一区二区| 国产91精品黑色丝袜高跟鞋| 日韩国产精品亚洲а∨天堂免| 欧美激情视频网址| 国产精品免费视频久久久| 久久国产精品偷| 亚洲片av在线| www国产精品com| 国产精品永久免费视频| 91sao在线观看国产| 欧美午夜激情小视频| 国产精品视频最多的网站| 亚洲爱爱爱爱爱| 自拍亚洲一区欧美另类| 日韩av电影在线播放| 欧美二区乱c黑人| 在线免费看av不卡| 欧美人在线视频| 久久综合伊人77777| 欧美日韩免费在线观看| 动漫精品一区二区| 色悠悠国产精品| 黑人与娇小精品av专区| 日韩麻豆第一页| 欧美富婆性猛交| 色综合伊人色综合网站| 欧美日韩国产123| 韩国国内大量揄拍精品视频| 亚洲天堂视频在线观看| 亚洲欧美日韩高清| 色偷偷av一区二区三区| 中文字幕欧美在线| 美女久久久久久久久久久| 日韩欧美国产一区二区| 欧洲亚洲妇女av| 亚洲欧美制服中文字幕| 亚洲电影免费观看高清完整版| 欧美一级淫片播放口| 在线观看国产欧美| 激情懂色av一区av二区av| 亚洲女人初尝黑人巨大| 欧美成人精品不卡视频在线观看| 欧美激情在线狂野欧美精品| 91国产在线精品| 欧美午夜丰满在线18影院| 国产精品视频免费在线观看| 亚洲成人在线视频播放| 国产精品日本精品| 伊人伊成久久人综合网站| 中文字幕亚洲一区二区三区五十路| 4444欧美成人kkkk| 91久久国产精品91久久性色| 欧美国产日本在线| 亚洲自拍偷拍色片视频| 国语自产在线不卡| 国产日韩欧美综合| 中文字幕日韩欧美精品在线观看| 国产视频精品一区二区三区| 亚洲欧美日韩第一区| 日韩www在线| 最近2019年好看中文字幕视频| 国内精品久久久久影院 日本资源| 欧美性20hd另类| 欧美性受xxxx黑人猛交| 色哟哟亚洲精品一区二区| 日韩视频第一页| 国产精品久久久久久久电影| 亚洲精品日韩久久久| 国产女精品视频网站免费| 亚洲精品视频网上网址在线观看| 成人午夜一级二级三级| 欧美一级淫片丝袜脚交| 精品亚洲精品福利线在观看| 色婷婷亚洲mv天堂mv在影片| 97国产精品久久| 亚洲无限乱码一二三四麻| 国产精品一香蕉国产线看观看| 亚洲精品美女久久久|