ASP网站制作之网站图片扫描类
因为现在数据库都使用标准的SQL语言对数据库进行管理,所以如果是标准SQL语言,两者基本上都可以通用的。SQLServer还有更多的扩展,可以用存储过程,数据库大小无极限限制。Scan.inc<%
************************************************
***********网站图片扫描器1.00******************
***********把戏师・杨*********************
***********日期:2004.5.6***********************
***********QQ:1168064**************************
************************************************
申明:这是我第一次编写使用类,个中不妥的地方请多多指教!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的利用:
ForEachFnInObjName.file……Next
Fn.FileName:图片称号,包括路径
Fn.Belong:图片地点文件或数据库(文件用"|"分隔)
Fn.Exists:是不是无效。0为生效1为无效-1为非当地路径,不克不及判别。
OptionExplicit
ClassMCScanImg
dimFile,ScanType,Conn,Table,ColId,ColImg,FSO,Path,List,ScanText,Spath,Version
dimFolders,Files,TotalSize,Images,Exists,sFiles,Start,EndT,RunTime,DbImg,TotalImg,Filter
PrivateSubClass_Initialize
SetFile=Server.Createobject("Scripting.Dictionary")
SetFSO=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=http://www.163design.net/a/f/(.[^/>^/&]*)(.gif.jpg)"
Version="1.00"
EndSub
PrivateSubClass_Terminate
SetFile=Nothing
SetFSO=Nothing
EndSub
PublicFunctionScan()入手下手扫描
ifleft(path,1)="/"then
path=Spath&Replace(path,"/","")
else
Path=Spath&""&Replace(path,"/","")
endif
IfScanType=1then
Scanfile(Path)
ElseIfScanType=2Then
ScanDb()
Else
ScanFile(Path)
ScanDb()
EndIf
EndT=timer
RunTime=FormatNumber(EndT-Start)*1000
TotalSize=shb(TotalSize)
TotalImg=DbImg+Images
EndFunction
PrivateSubScanDB()扫描数据库。这里的路径难于判别,请在InsDb中变动(IfAddNum=0后)
DimRs,RetStr,ReBel,SQL
SQL="Select"&ColID&","&ColIMG&"From"&Table&"Orderby"&ColID&"DESC"
OnErrorResumeNext
IfConn=""ORTable=""ORColID=""ORColIMG=""Then
ExitSub
Else
SetRs=Server.CreateObject("ADODB.RecordSet")
Rs.OpenSQL,conn,3,3
WhileNotRs.EOF
RetStr=Rs(1)
ReBel="表"&Table&"中的"&ColImg&"列(ID:"&Rs(0)&")"
InsDbRetStr,ReBel,0,""
Rs.MoveNext
Wend
Rs.Close
SetRs=Nothing
EndIf
EndSub
PrivateSubScanFile(PathStr)扫描文件。递回
Dimf,ff,fn,fd,fdn,RealPath,fr,fc
Response.writePathStr&"<br>"
Setff=fso.getfolder(pathstr)
Setf=ff.files
Setfd=ff.subfolders
Iff.Count>0Then
ForEachfnInf
Files=Files+1
TotalSize=TotalSize+fn.Size
IfChkFileName(fn.Name)Then
sFiles=sFiles+1
IfRight(PathStr,1)""Then
RealPath=PathStr&""&fn.Name
Else
RealPath=PathStr&fn.Name
EndIf
Setfr=FSO.OpenTextFile(RealPath,1)
fc=fr.ReadAll
response.writeRealPath&"<br>"
RegExpTestfilter,fc,RealPath
EndIf
Next
EndIf
Iffd.Count>0Then
ForEachfdnInfd
Folders=Folders+1
dimtemp
ifright(PathStr,1)""then
temp=PathStr&""&fdn.Name
else
temp=PathStr&fdn.Name
endif
ScanFile(temp)
Next
EndIf
EndSub
PrivateSubRegExpTest(Patrn,Strng,PathStr)查找图片
DimRegEx,Match,Matches,Chk,ReImg,RetStr,ReBel,TheFile
SetRegEx=NewRegExp</p>ASP一般认为只能运行在IIS上,正如前面所提到的,这并不是十分正确,事实上,ASP也能运行在Apache上。ApacheASP可在任意Apache服务器上运行有限的ASP功能,所需做的,只需打开mod_perl。 另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件) Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名") Server:这个表示的服务器,操作服务器的一些东西使用这个,如Server.Mappath转换服务器路径,Server.CreateObject实例化一个组件 运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写,使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行。 最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。 我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。 Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名") 代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。
页:
[1]