当前位置: 首页 > 图文教程 > 网络编程 > ASP > 浏览文件夹下面所有图片

ASP
asp生成三维饼图的函数
ASP下的简洁的多重查询的方法与函数 真不错
发一个ASP的ADODB类代码
A利用ASP小偷和Google实现在线翻译功能的代码
ASP类型网站结合动网论坛会员的方法
Asp下实现多表单域无组件文件上传的实例
asp制作中常用到的函数库集合
易心asp分页类 v1.0
asp中xmlhttp组件发包
检测是否为数字类型的asp代码
可以获得文件的文件名的asp函数
用asp实现访问远程计算机上MDB access数据库文件的方法
用ASP实现写IIS日志的代码
asp在IE浏览器中下载服务端上的各类文件的实现方法
asp汉字中文图片验证码的实现代码
asp WAP获取手机终端信息的一段代码
asp取得数组中的最大值的方法
用asp实现的截取指定格式字符串的代码
asp jmail发邮件 详细解析
ASP编程中连接数据库和数据库操作的常用代码

ASP 中的 浏览文件夹下面所有图片


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 158 ::
收藏到网摘: n/a

复制代码 代码如下:

<%
'+-----------------------------------+
'| 变量设置
'+-----------------------------------+
cTitle = "所有上传图片(注:以下为图片文件夹下面所有图片,并非全部为有效图片!)" '名字
cPicType = "jpeg,jpg,gif,png,bmp" '图片类型 (使用","将图片格式分开)
cHeight = 120 '缩图高度
cWidth = 120 '缩图宽度
cEachLineMax = 5 '每行显示图片数
cEachPageMax = 20 '每页显示图片数目
pic_path="/uploadpic/" '设定图片所在路径
'+-----------------------------------+
'| 定义函数
'+-----------------------------------+
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> ] "
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> "
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> "
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> ] 共 <B><FONT COLOR=red>" & pageTotal & "</FONT></B> 页 当前所在第 <B><FONT COLOR=red>" & page & "</FONT></B> 页 图片数 : <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=sConv&Num2Str(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 p1<196 then exit do else aso.read(binval2(aso.Read(2))-2)
do:p1=binVal(aso.Read(1)):loop while p1<255 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
'+-----------------------------------+
'| 数据处理
'+-----------------------------------+
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> '+sPop+' <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.opacity<popOpacity) {
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>
<%
'+-----------------------------------+
'| 循环输出图片
'+-----------------------------------+
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) & " <br> 尺寸:" & x & " × " & y & " ""></a></td>"
j = j + 1
i = i + 1
Loop
Set pp = Nothing
%>
</tr>
</table>
<br>
<% pageBar page, pageTotal %>
</center>
</body>
</html>