如何实现asp无组件生成缩略图Word格式文档下载.docx

上传人:b****2 文档编号:846119 上传时间:2023-04-29 格式:DOCX 页数:7 大小:17.36KB
下载 相关 举报
如何实现asp无组件生成缩略图Word格式文档下载.docx_第1页
第1页 / 共7页
如何实现asp无组件生成缩略图Word格式文档下载.docx_第2页
第2页 / 共7页
如何实现asp无组件生成缩略图Word格式文档下载.docx_第3页
第3页 / 共7页
如何实现asp无组件生成缩略图Word格式文档下载.docx_第4页
第4页 / 共7页
如何实现asp无组件生成缩略图Word格式文档下载.docx_第5页
第5页 / 共7页
如何实现asp无组件生成缩略图Word格式文档下载.docx_第6页
第6页 / 共7页
如何实现asp无组件生成缩略图Word格式文档下载.docx_第7页
第7页 / 共7页
亲,该文档总共7页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

如何实现asp无组件生成缩略图Word格式文档下载.docx

《如何实现asp无组件生成缩略图Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《如何实现asp无组件生成缩略图Word格式文档下载.docx(7页珍藏版)》请在冰点文库上搜索。

如何实现asp无组件生成缩略图Word格式文档下载.docx

后来试了试,发觉在猎取jpg类图片尺寸时总是不能正确显示,在网上查了查,居然有不少网站转载这个程序,但没有一家指出此程序的缺陷,也就更谈不上解决缺陷的方法了。

后来又google了一下,最终找到了一篇介绍利用ADODB.stream猎取图片尺寸的文章,按其介绍的方法,修改里面的代码试了试,效果真的还不错,现在将其拿出来与大家分享:

利用ADODB.stream猎取图片尺寸的通用类

%

'

////////////GPS:

GetPictureSize//////////////

//////////////利用ADODB.stream猎取图片尺寸//////////////

/////////CitedByLeon(心晴)2021年8月11日//////////

ClassGPS

Dimaso

PrivateSubClass_Initialize

Setaso=CreateObject("

Adodb.Stream"

aso.Mode=3

aso.Type=1

aso.Open

EndSub

PrivateSubClass_Terminate

setaso=nothing

PrivateFunctionBin2Str(Bin)

DimI,Str

ForI=1toLenB(Bin)

clow=MidB(Bin,I,1)

ifAscB(clow)128then

Str=StrChr(ASCB(clow))

Else

I=I+1

ifI=LenB(Bin)thenStr=StrChr(ASCW(MidB(Bin,I,1)clow))

endIf

Next

Bin2Str=Str

EndFunction

PrivateFunctionNum2Str(num,base,lens)

GPS(2021-8-11)

dimret

ret="

"

while(num=base)

ret=(nummodbase)ret

num=(num-nummodbase)/base

wend

Num2Str=right(string(lens,"

)numret,lens)

PrivateFunctionStr2Num(str,base)

ret=0

fori=1tolen(str)

ret=ret*base+cint(mid(str,i,1))

next

Str2Num=ret

PrivateFunctionBinVal(bin)

fori=lenb(bin)to1step-1

ret=ret*256+ascb(midb(bin,i,1))

BinVal=ret

PrivateFunctionBinVal2(bin)

fori=1tolenb(bin)

BinVal2=ret

///以下是调用代码///

FunctiongetImageSize(filespec)

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))

464947"

aso.read(3)

GIF"

ret

(1)=BinVal(aso.read

(2))

ret

(2)=BinVal(aso.read

(2))

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)

sConv=sConvNum2Str(ascb(binData),2,8)

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)

FFD8FF"

do

do:

p1=binVal(aso.Read

(1)):

loopwhilep1=255andnotaso.EOS

ifp1191andp1196thenexitdoelseaso.read(binval2(aso.Read

(2))-2)

p1=binVal(aso.Read

(1)):

loopwhilep1255andnotaso.EOS

loopwhiletrue

aso.Read(3)

JPG"

ret

(2)=binval2(aso.Read

(2))

ret

(1)=binval2(aso.Read

(2))

caseelse:

ifleft(Bin2Str(bFlag),2)="

BM"

then

aso.Read(15)

BMP"

ret

(1)=binval(aso.Read(4))

ret

(2)=binval(aso.Read(4))

else

endif

endselect

ret(3)="

width="

ret

(1)"

ret

(2)"

getimagesize=ret

EndClass

将以上代码复制生成GPS.asp文件,这样无组件猎取图片尺寸的通用类就OK了。

2.猎取图片路径

由于不只一张图片,以及图片需分类存放,我们在数据库中设计了一个存放图片相对路径的字段ImgURL。

我们把上传的图片都放在一个名为images的文件夹中(至于如何无组件上传图片心晴就不在多说了)。

现在我们先设计一个ShowImg.asp页面用来显示缩略图及相关信息。

具体设计如下:

图片:

图片格式:

图片尺寸:

图片大小:

点击次数:

下面,我们猎取图片的肯定路径。

代码如下:

/////猎取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

/////建立GPS类实体/////

DimGetPicSize

SetGetPicSize=newGPS

Setfs=Server.CreateObject("

Scripting.FileSystemObject"

/////猎取图片类型/////

DimPicSuffixName

PicSuffixName=fs.GetExtensionName(filename)

DimPD'

//PictureDimension

DimPWidth,PHeight

SelectCasePicSuffixName

Case"

gif"

"

bmp"

jpg"

png"

/////调用GPS通用类中的GetImageSize函数猎取图片尺寸/////

PD=GetPicSize.GetImageSize(filename)

PWidth=PD

(1)'

//猎取图片宽度

PHeight=PD

(2)'

//猎取图片高度

swf"

//猎取Flash宽度

//猎取Flash高度

CaseElse

EndSelect

Setfs=Nothing

SetGetPicSize=Nothing

将上面的代码复制到body的上面就OK了!

当然,有人会说,猎取路径不肯定要用PATH_INFO,挺直用server.mappath()不就可以了嘛,呵呵,萝卜青菜各有所爱,主要是我用PATH_INFO可以实现FSO的一些功能而用server.mappath()没有搞定,所以始终用法这个。

3.定义缩略图尺寸

这部分代码就是仁者见仁,智者见智了。

首先,我们需要规定缩略图显示尺寸范围,譬如:

300X260,代码可以这样写:

DimPXWidth,PXHeight

DimPp'

//Proportion

IfPWidth=0OrPWidth="

Then

PXWidth=0

PXHeight=0

Pp=FormatNumber(PWidth/PHeight,2)'

//长宽比

EndIf

IfPWidth=PHeightThen

IfPWidth=300Then

PXWidth=300

PXHeight=FormatNumber(300/Pp,0)

PXWidth=PWidth

PXHeight=PHeight

IfPHeight=260Then

PXHeight=260

PXWidth=FormatNumber(260*Pp,0)

将上面的代码紧接其次步写下即可。

调用时代码如下:

imgsrc=%=curfilename%border="

width=%=PXWidth%

height=%=PXHeight%

至于图片格式可以用得到,图片尺寸可以写成

response.writePXWidth"

X"

PXHeight

图片大小可以用FSO.GetFileSize(filename)来实现,而点击次数可以简洁地用SQL语句实现,具体编码就不再累述了。

这样,一个无组件生成缩略图程序就写好了,可能有点拿来主义,不过只要大家能将方法把握信任还是有很大提高的。

更多信息请查看IT技术专栏

...

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2