网络编程 
首页 > 网络编程 > 浏览文章

浏览文件夹下面所有图片

(编辑:jimmy 日期: 2024/11/8 浏览:3 次 )
复制代码 代码如下:
<%
'+-----------------------------------+
'|     变量设置
'+-----------------------------------+
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>   ]&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;当前所在第   <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>&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.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="/UploadFiles/2021-04-02/   & ">j   =   j   +   1
i   =   i   +   1
Loop
Set   pp   =   Nothing
%>
</tr>
</table>
<br>
<%   pageBar   page,   pageTotal   %>
</center>
</body>
</html>

上一篇:结合asp和存储过程做的搜索程序
下一篇:asp数据库防下载处理