ASP网页编程之我的ASP之旅―无组件天生缩略图
缺点:正版成本价格贵(盗版就不说了)、不够安全,大多数服务器用windows系统,没有linux安全缩略图|无组件网上有很多天生缩略图的ASP组件。若你的假造空间不撑持注册新组件,大概会感到本人的网站失容很多。心晴鄙人,分离网上资本写了个无组件天生缩略图程序,仅供参考。仍是先看看基本部分吧。起首,我们晓得在页面中显现图片是以下代码:<imgsrc="http://www.163design.net/a/f/pic.gif"border="0"width="300"height="260">
src是图片路径,border把持图片边沿宽度,width是图片的长度,height是图片的高度。缩略图的天生实在就是在原始尺寸上缩放。但通常是了只管少掉真,我们城市按比例缩放。因而,猎取图片的长宽尺寸也就成了天生缩略图的重点。
上面即是编写无组件天生缩略图的步骤:
1.无组件猎取图片巨细
之前刚学ASP不久时看到过一篇使用ASCII码完成无组件猎取图片尺寸的文章。厥后试了试,发明在猎取jpg类图片尺寸时老是不克不及准确显现,在网上查了查,竟然有很多网站转载这个程序,但没有一家指出此程序的缺点,也就更谈不上办理缺点的举措了。厥后又google了一下,终究找到了一篇先容使用ADODB.stream猎取图片尺寸的文章,按其先容的办法,修正内里的代码试了试,效果然的还不错,如今将其拿出来与人人分享:
使用ADODB.stream猎取图片尺寸的通用类<%
////////////GPS:GetPictureSize//////////////
//////////////使用ADODB.stream猎取图片尺寸//////////////
/////////CitedByLeon(心晴)2005年8月11日//////////
ClassGPS
Dimaso
PrivateSubClass_Initialize
Setaso=CreateObject("Adodb.Stream")
aso.Mode=3
aso.Type=1
aso.Open
EndSub
PrivateSubClass_Terminate
setaso=nothing
EndSub
PrivateFunctionBin2Str(Bin)
DimI,Str
ForI=1toLenB(Bin)
clow=MidB(Bin,I,1)
ifAscB(clow)<128then
Str=Str&Chr(ASCB(clow))
Else
I=I+1
ifI<=LenB(Bin)thenStr=Str&Chr(ASCW(MidB(Bin,I,1)&clow))
endIf
Next
Bin2Str=Str
EndFunction
PrivateFunctionNum2Str(num,base,lens)
GPS(2005-8-11)
dimret
ret=""
while(num>=base)
ret=(nummodbase)&ret
num=(num-nummodbase)/base
wend
Num2Str=right(string(lens,"0")&num&ret,lens)
EndFunction
PrivateFunctionStr2Num(str,base)
GPS(2005-8-11)
dimret
ret=0
fori=1tolen(str)
ret=ret*base+cint(mid(str,i,1))
next
Str2Num=ret
EndFunction
PrivateFunctionBinVal(bin)
GPS(2002-8-11)
dimret
ret=0
fori=lenb(bin)to1step-1
ret=ret*256+ascb(midb(bin,i,1))
next
BinVal=ret
EndFunction
PrivateFunctionBinVal2(bin)
GPS(2002-8-11)
dimret
ret=0
fori=1tolenb(bin)
ret=ret*256+ascb(midb(bin,i,1))
next
BinVal2=ret
EndFunction
///以下是挪用代码///
FunctiongetImageSize(filespec)
GPS(2002-8-11)
dimret(3)
aso.LoadFromFile(filespec)
bFlag=aso.read(3)
selectcasehex(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)):loopwhilep1=255andnotaso.EOS
ifp1>191andp1<196thenexitdoelseaso.read(binval2(aso.Read(2))-2)
do:p1=binVal(aso.Read(1)):loopwhilep1<255andnotaso.EOS
loopwhiletrue
aso.Read(3)
ret(0)="JPG"
ret(2)=binval2(aso.Read(2))
ret(1)=binval2(aso.Read(2))
caseelse:
ifleft(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)=""
endif
endselect
ret(3)="width="""&ret(1)&"""height="""&ret(2)&""""
getimagesize=ret
EndFunction
EndClass
%>
将以上代码复制天生GPS.asp文件,如许无组件猎取图片尺寸的通用类就OK了。
2.猎取图片路径
因为不但一张图片,和图片需分类寄存,我们在数据库中计划了一个寄存图片绝对路径的字段ImgURL。我们把上传的图片都放在一个名为images的文件夹中(至于怎样无组件上传图片心晴就不在多说了)。如今我们先计划一个ShowImg.asp页面用来显现缩略图及相干信息。详细计划以下:
图片:
图片格局:
图片尺寸:
图片巨细:
点击次数:
上面,我们猎取图片的相对路径。代码以下:
<P><%
/////猎取ShowImg.asp的相对路径/////
DimcurFile
curFile=Server.mappath(Request.servervariables("PATH_INFO"))
Dimcurfilename,filename
/////图片绝对路径(存于数据库中)
cufilename=rs("ImgURL")
/////由于ShowImg.asp与images在统一目次,以是我们用instrrev猎取images的路径/////
filename=left(curFile,instrrev(curFile,""))&cufilename
&n
asp,jsp,php是web开发的三大技术,asp简单易用且有microsoft做靠山,jsp功能强大是因为有java支持,php则开源跨平台.在国内,asp应用范围最广,jsp发展势头最猛,php则处于劣势.这可能与公司的支持以及技术的培训有关.
ASP网页编程之我的ASP之旅―无组件天生缩略图
我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。 还有如何才能在最短的时间内学完?我每天可以有效学习2小时,双休日4小时。 Response:从字面上讲是“响应”,因此这个是服务端向客户端发送东西的,例如Response.Write ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。 ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题: 代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。 Session:这个存储跟客户端会话过程的数据,默认20分钟失效 接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。 下面简单介绍一下我学习ASP的方法,希望对想学习ASP的朋友有所帮助... 在平时的学习过程中要注意现学现用,注重运用,在掌握了一定的基础知识后,我们可以尝试做一些网页,也许在开始的时候我们可能会遇到很多问题,比如说如何很好的构建基本框架。
页:
[1]