復(fù)制代碼 代碼如下:
%
'+-----------------------------------+
'| 變量設(shè)置
'+-----------------------------------+
cTitle = "所有上傳圖片(注:以下為圖片文件夾下面所有圖片,并非全部為有效圖片!)" '名字
cPicType = "jpeg,jpg,gif,png,bmp" '圖片類型 (使用","將圖片格式分開)
cHeight = 120 '縮圖高度
cWidth = 120 '縮圖寬度
cEachLineMax = 5 '每行顯示圖片數(shù)
cEachPageMax = 20 '每頁顯示圖片數(shù)目
pic_path="/uploadpic/" '設(shè)定圖片所在路徑
'+-----------------------------------+
'| 定義函數(shù)
'+-----------------------------------+
Function getExt(name)
getExt = right(name, 3)
End Function
Function isPIC(fileName, picType)
ext = getExt(fileName)
isPIC = False
typeList = split(picType, ",")
For ii = LBound(typeList) To UBound(typeList)
If UCase(ext) = UCase(typeList(ii)) Then
isPIC = True
Exit For
End If
Next
End Function
Function pageBar(page, pageTotal)
response.Write "[ A HREF="Request.ServerVariables("SCRIPT_NAME")"?page=" (page - 1) " title=上一頁>上一頁/A> ]nbsp;"
response.Write "A HREF="Request.ServerVariables("SCRIPT_NAME")"?page=1 title=首頁> /A>"
i = pageStart
Do while i page
response.Write "A HREF="Request.ServerVariables("SCRIPT_NAME")"?page=" i " title=""第 " i " 頁"">[" i "]/A>nbsp;"
i = i + 1
Loop
response.Write "[FONT COLOR=red>B>" page "/B>/FONT>]"
i = pageMiddle
Do while i = pageEnd
response.Write "A HREF="Request.ServerVariables("SCRIPT_NAME")"?page=" i " title=""第 " i " 頁"">[" i "]/A>nbsp;"
i = i + 1
Loop
response.Write "...A HREF="Request.ServerVariables("SCRIPT_NAME")"?page=" pageTotal " title=""第 " pageTotal " 頁"">[" pageTotal "]/A>"
response.Write " A HREF="Request.ServerVariables("SCRIPT_NAME")"?page=" pageTotal " title=尾頁>>>/A>"
response.Write "[ A HREF="Request.ServerVariables("SCRIPT_NAME")"?page=" (page + 1) " title=下一頁>下一頁/A> ]nbsp;共 B>FONT COLOR=red>" pageTotal "/FONT>/B> 頁nbsp;nbsp;當(dāng)前所在第 B>FONT COLOR=red>" page "/FONT>/B> 頁 圖片數(shù) : B>FONT COLOR=red>" picTotal "/FONT>/B>"
End Function
'+-----------------------------------+
'| 取圖片尺寸類
'+-----------------------------------+
Class possible
dim aso
Private Sub Class_Initialize
set aso=CreateObject("Adodb.Stream")
aso.Mode=3
aso.Type=1
aso.Open
End Sub
Private Sub Class_Terminate
set aso=nothing
End Sub
Private Function Bin2Str(Bin)
Dim K, Str
For K=1 to LenB(Bin)
clow=MidB(Bin,K,1)
if ASCB(clow)128 then
Str = Str Chr(ASCB(clow))
else
K=K+1
if K = LenB(Bin) then Str = Str Chr(ASCW(MidB(Bin,K,1)clow))
end if
Next
Bin2Str = Str
End Function
Private Function Num2Str(num,base,lens)
dim ret
ret = ""
while(num>=base)
ret = (num mod base) ret
num = (num - num mod base)/base
wend
Num2Str = right(string(lens,"0") num ret,lens)
End Function
Private Function Str2Num(str,base)
dim ret
ret = 0
for k=1 to len(str)
ret = ret *base + cint(mid(str,k,1))
next
Str2Num=ret
End Function
Private Function BinVal(bin)
dim ret
ret = 0
for k = lenb(bin) to 1 step -1
ret = ret *256 + ascb(midb(bin,k,1))
next
BinVal=ret
End Function
Private Function BinVal2(bin)
dim ret
ret = 0
for k = 1 to lenb(bin)
ret = ret *256 + ascb(midb(bin,k,1))
next
BinVal2=ret
End Function
Private Function getImageSize(filespec)
dim ret(3)
aso.LoadFromFile(filespec)
bFlag=aso.read(3)
select case hex(binVal(bFlag))
case "4E5089":
aso.read(15)
ret(0)="PNG"
ret(1)=BinVal2(aso.read(2))
aso.read(2)
ret(2)=BinVal2(aso.read(2))
case "464947":
aso.read(3)
ret(0)="GIF"
ret(1)=BinVal(aso.read(2))
ret(2)=BinVal(aso.read(2))
case "535746":
aso.read(5)
binData=aso.Read(1)
sConv=Num2Str(ascb(binData),2 ,8)
nBits=Str2Num(left(sConv,5),2)
sConv=mid(sConv,6)
while(len(sConv)nBits*4)
binData=aso.Read(1)
sConv=sConvNum2Str(ascb(binData),2 ,8)
wend
ret(0)="SWF"
ret(1)=int(abs(Str2Num(mid(sConv,1*nBits+1,nBits),2)-Str2Num(mid(sConv,0*nBits+1,nBits),2))/20)
ret(2)=int(abs(Str2Num(mid(sConv,3*nBits+1,nBits),2)-Str2Num(mid(sConv,2*nBits+1,nBits),2))/20)
case "FFD8FF":
do
do: p1=binVal(aso.Read(1)): loop while p1=255 and not aso.EOS
if p1>191 and p1196 then exit do else aso.read(binval2(aso.Read(2))-2)
do:p1=binVal(aso.Read(1)):loop while p1255 and not aso.EOS
loop while true
aso.Read(3)
ret(0)="JPG"
ret(2)=binval2(aso.Read(2))
ret(1)=binval2(aso.Read(2))
case else:
if left(Bin2Str(bFlag),2)="BM" then
aso.Read(15)
ret(0)="BMP"
ret(1)=binval(aso.Read(4))
ret(2)=binval(aso.Read(4))
else
ret(0)=""
end if
end select
ret(3)="width=""" ret(1) """ height=""" ret(2) """"
getimagesize=ret
End Function
Function readX(pic_path)
Set fso1 = server.CreateObject("Scripting.FileSystemObject")
Set f1 = fso1.GetFile(pic_path)
ext=fso1.GetExtensionName("."pic_path)
select case UCase(ext)
case "GIF","BMP","JPG","PNG":
arr=getImageSize(f1.path)
readX = arr(1)
case "swf"
arr=pp.getimagesize(f1.path)
readX = arr(1)
end select
Set f1=nothing
Set fso1=nothing
End Function
Function readY(pic_path)
Set fso1 = server.CreateObject("Scripting.FileSystemObject")
Set f1 = fso1.GetFile(pic_path)
ext=fso1.GetExtensionName("."pic_path)
select case UCase(ext)
case "GIF","BMP","JPG","PNG":
arr=getImageSize(f1.path)
readY = arr(2)
case "swf"
arr=pp.getimagesize(f1.path)
readY = arr(2)
end select
Set f1=nothing
Set fso1=nothing
End Function
End Class
'+-----------------------------------+
'| 數(shù)據(jù)處理
'+-----------------------------------+
Dim fileArray()
reDim fileArray(0)
Set fileObj = Server.CreateObject("Scripting.FileSystemObject")
Set folderObj = fileObj.GetFolder(server.MapPath("."pic_path))
i = 0
For Each file in folderObj.Files
If isPIC(file.Name, cPicType) Then
fileArray(i) = file.Name
i = i + 1
reDim Preserve fileArray(i)
End If
Next
Set FileObj = Nothing
Set FolderObj = Nothing
picTotal = UBound(fileArray)
'+-----------------------------------+
'| 分頁處理
'+-----------------------------------+
page = int(Request.QueryString("page"))
pageTotal = -(int(-(picTotal/cEachPageMax)))
If page = Empty or page 0 Then page = 1
If page > pageTotal Then page = pageTotal
offset = cEachPageMax * page
start = offset - cEachPageMax
If start 0 Then start = 0
If offset > picTotal Then offset = picTotal
pageStart = page - cEachPageMax
If pageStart = 0 Then pageStart = 1
pageMiddle = page + 1
pageEnd = pageMiddle + cEachPageMax
If page = cEachPageMax Then pageEnd = cEachPageMax * 2
If pageEnd > pageTotal Then pageEnd = pageTotal
'+-----------------------------------+
'| 輸出部分
'+-----------------------------------+
%>
!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
html>
head>
title> %=cTitle%> /title>
style type='text/css'>
a:link, a:visited, a:active { text-decoration: none; color: #000 }
a:hover { color: orangered; text-decoration:none }
BODY { scrollbar-face-color: #DEE3E7; scrollbar-highlight-color: #FFFFFF; scrollbar-shadow-color: #DEE3E7; scrollbar-3dlight-color: #D1D7DC; scrollbar-arrow-color: #006699; scrollbar-track-color: #EFEFEF; scrollbar-darkshadow-color: #98AAB1; font: 12px Verdana; color:#333333; font-family: Tahoma,Verdana, Tahoma, Arial,Helvetica, sans-serif; font-size: 12px; color: #000; margin:0px 12px 0px 12px;background-color:#FFF }
TD {font: 12px Verdana; color:#333333; font-family: Tahoma,Verdana, Tahoma, Arial,Helvetica, sans-serif; font-size: 12px; color: #000; };
/style>
/head>
body topmargin="0" leftmargin="0">
script>
tPopWait=20;
showPopStep=10;
popOpacity=85;
sPop=null;
curShow=null;
tFadeOut=null;
tFadeIn=null;
tFadeWaiting=null;
document.write("style type='text/css'id='defaultPopStyle'>");
document.write(".cPopText { font-family: Verdana, Tahoma; background-color: #F7F7F7; border: 1px #000000 solid; font-size: 11px; padding-right: 4px; padding-left: 4px; height: 20px; padding-top: 2px; padding-bottom: 2px; filter: Alpha(Opacity=0)}");
document.write("/style>");
document.write("div id='popLayer' style='position:absolute;z-index:500;' class='cPopText'>/div>");
function showPopupText(){
var o=event.srcElement;
MouseX=event.x;
MouseY=event.y;
if(o.alt!=null o.alt!="") { o.pop=o.alt;o.alt="" }
if(o.title!=null o.title!=""){ o.pop=o.title;o.title="" }
if(o.pop) { o.pop=o.pop.replace("\n","br>"); o.pop=o.pop.replace("\n","br>"); }
if(o.pop!=sPop) {
sPop=o.pop;
clearTimeout(curShow);
clearTimeout(tFadeOut);
clearTimeout(tFadeIn);
clearTimeout(tFadeWaiting);
if(sPop==null || sPop=="") {
popLayer.innerHTML="";
popLayer.style.filter="Alpha()";
popLayer.filters.Alpha.opacity=0;
} else {
if(o.dyclass!=null) popStyle=o.dyclass
else popStyle="cPopText";
curShow=setTimeout("showIt()",tPopWait);
}
}
}
function showIt() {
popLayer.className=popStyle;
popLayer.innerHTML='BR>nbsp;nbsp;'+sPop+'nbsp;nbsp;BR>BR>';
popWidth=popLayer.clientWidth;
popHeight=popLayer.clientHeight;
if(MouseX+12+popWidth>document.body.clientWidth) popLeftAdjust=-popWidth-24
else popLeftAdjust=0;
if(MouseY+12+popHeight>document.body.clientHeight) popTopAdjust=-popHeight-24
else popTopAdjust=0;
popLayer.style.left=MouseX+12+document.body.scrollLeft+popLeftAdjust;
popLayer.style.top=MouseY+12+document.body.scrollTop+popTopAdjust;
popLayer.style.filter="Alpha(Opacity=0)";
fadeOut();
}
function fadeOut(){
if(popLayer.filters.Alpha.opacitypopOpacity) {
popLayer.filters.Alpha.opacity+=showPopStep;
tFadeOut=setTimeout("fadeOut()",1);
}
}
document.onmouseover=showPopupText;
/script>
br>br>
center>
%=cTitle%>
br>br>
% pageBar page, pageTotal %>
br>br>
table border="0" CELLPADDING="4" CELLSPACING="4">
tr>
%
'+-----------------------------------+
'| 循環(huán)輸出圖片
'+-----------------------------------+
j = 1
i = start
Set pp = New possible
Do While i offset
thisPicPath = server.mappath("."pic_path fileArray(i))
x = pp.readX(thisPicPath)
y = pp.readY(thisPicPath)
If x > cWidth or y > cHeight Then
tWidth = x / cWidth : tHeight = y / cHeight
If tWidth > tHeight Then
w = cWidth
h = y / tWidth
Elseif tWidth tHeight Then
h = cHeight
w = x / tHeight
Else
w = cWidth
h = cHeight
End If
Else
w = x
h = y
End If
If j > cEachLineMax Then
j = 1
response.Write "/tr>tr>"
End If
response.Write "td style=""border: 1px solid #000000"" width=" cWidth " height=" cHeight " align=center>a href=""./"pic_path fileArray(i) """ target=""_blank"">img border=0 src=" "." pic_path fileArray(i) " width=" w " height=" h " alt=""文件:" fileArray(i) "nbsp;nbsp;br>nbsp;nbsp;尺寸:" x " × " y "nbsp;nbsp;"">/a>/td>"
j = j + 1
i = i + 1
Loop
Set pp = Nothing
%>
/tr>
/table>
br>
% pageBar page, pageTotal %>
/center>
/body>
/html>