仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 648|回复: 8
打印 上一主题 下一主题

[学习教程] ASP网页编程之使用FSO获得BMP,JPG,PNG,GIF文件信息...

[复制链接]
爱飞 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:57:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
因为现在数据库都使用标准的SQL语言对数据库进行管理,所以如果是标准SQL语言,两者基本上都可以通用的。SQLServer还有更多的扩展,可以用存储过程,数据库大小无极限限制。fso
<%
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::BMP,GIF,JPGandPNG:::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::
:::Thisfunctiongetsaspecifiednumberofbytesfromany:::
:::file,startingattheoffset(base1):::
::::::
:::Passed::::
:::flnm=>Filespecoffiletoread:::
:::offset=>Offsetatwhichtostartreading:::
:::bytes=>Howmanybytestoread:::
::::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
functionGetBytes(flnm,offset,bytes)
DimobjFSO
DimobjFTemp
DimobjTextStream
DimlngSize
onerrorresumenext
SetobjFSO=CreateObject("Scripting.FileSystemObject")
First,wegetthefilesize
SetobjFTemp=objFSO.GetFile(flnm)
lngSize=objFTemp.Size
setobjFTemp=nothing
fsoForReading=1
SetobjTextStream=objFSO.OpenTextFile(flnm,fsoForReading)
ifoffset>0then
strBuff=objTextStream.Read(offset-1)
endif
ifbytes=-1thenGetAll!
GetBytes=objTextStream.Read(lngSize)ReadAll
else
GetBytes=objTextStream.Read(bytes)
endif
objTextStream.Close
setobjTextStream=nothing
setobjFSO=nothing
endfunction
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::
:::Functionstoconverttwobytestoanumericvalue(long):::
:::(bothlittle-endianandbig-endian):::
::::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
functionlngConvert(strTemp)
lngConvert=clng(asc(left(strTemp,1))+((asc(right(strTemp,1))*256)))
endfunction
functionlngConvert2(strTemp)
lngConvert2=clng(asc(right(strTemp,1))+((asc(left(strTemp,1))*256)))
endfunction
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::
:::Thisfunctiondoesmostoftherealwork.Itwillattempt:::
:::toreadanyfile,regardlessoftheextension,andwill:::
:::identifyifitisagraphicalimage.:::
::::::
:::Passed::::
:::flnm=>Filespecoffiletoread:::
:::width=>widthofimage:::
:::height=>heightofimage:::
:::depth=>colordepth(innumberofcolors):::
:::strImageType=>typeofimage(e.g.GIF,BMP,etc.):::
::::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
functiongfxSpex(flnm,width,height,depth,strImageType)
dimstrPNG
dimstrGIF
dimstrBMP
dimstrType
strType=""
strImageType="(unknown)"
gfxSpex=False
strPNG=chr(137)&chr(80)&chr(78)
strGIF="GIF"
strBMP=chr(66)&chr(77)
strType=GetBytes(flnm,0,3)
ifstrType=strGIFthenisGIF
strImageType="GIF"
Width=lngConvert(GetBytes(flnm,7,2))
Height=lngConvert(GetBytes(flnm,9,2))
Depth=2^((asc(GetBytes(flnm,11,1))and7)+1)
gfxSpex=True
elseifleft(strType,2)=strBMPthenisBMP
strImageType="BMP"
Width=lngConvert(GetBytes(flnm,19,2))
Height=lngConvert(GetBytes(flnm,23,2))
Depth=2^(asc(GetBytes(flnm,29,1)))
gfxSpex=True
elseifstrType=strPNGthenIsPNG
strImageType="PNG"
Width=lngConvert2(GetBytes(flnm,19,2))
Height=lngConvert2(GetBytes(flnm,23,2))
Depth=getBytes(flnm,25,2)
selectcaseasc(right(Depth,1))
case0
Depth=2^(asc(left(Depth,1)))
gfxSpex=True
case2
Depth=2^(asc(left(Depth,1))*3)
gfxSpex=True
case3
Depth=2^(asc(left(Depth,1)))8
gfxSpex=True
case4
Depth=2^(asc(left(Depth,1))*2)
gfxSpex=True
case6
Depth=2^(asc(left(Depth,1))*4)
gfxSpex=True
caseelse
Depth=-1
endselect
else
strBuff=GetBytes(flnm,0,-1)Getallbytesfromfile
lngSize=len(strBuff)
flgFound=0
strTarget=chr(255)&chr(216)&chr(255)
flgFound=instr(strBuff,strTarget)
ifflgFound=0then
exitfunction
endif
strImageType="JPG"
lngPos=flgFound+2
ExitLoop=false
dowhileExitLoop=FalseandlngPos<lngSize
dowhileasc(mid(strBuff,lngPos,1))=255andlngPos<lngSize
lngPos=lngPos+1
loop
ifasc(mid(strBuff,lngPos,1))<192orasc(mid(strBuff,lngPos,1))>195then
lngMarkerSize=lngConvert2(mid(strBuff,lngPos+1,2))
lngPos=lngPos+lngMarkerSize+1
else
ExitLoop=True
endif
loop

ifExitLoop=Falsethen
Width=-1
Height=-1
Depth=-1
else
Height=lngConvert2(mid(strBuff,lngPos+4,2))
Width=lngConvert2(mid(strBuff,lngPos+6,2))
Depth=2^(asc(mid(strBuff,lngPos+8,1))*8)
gfxSpex=True
endif
endif
endfunction
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::TestHarness:::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Totest,welljusttrytoshowallfileswitha.GIFextensionintherootofC:
SetobjFSO=CreateObject("Scripting.FileSystemObject")
SetobjF=objFSO.GetFolder("c:")
SetobjFC=objF.Files
response.write"<tableborder=""0""cellpadding=""5"">"
ForEachf1inobjFC
ifinstr(ucase(f1.Name),".GIF")then
response.write"<tr><td>"&f1.name&"</td><td>"&f1.DateCreated&"</td><td>"&f1.Size&"</td><td>"
ifgfxSpex(f1.Path,w,h,c,strType)=truethen
response.writew&"x"&h&""&c&"colors"
else
response.write""
endif
response.write"</td></tr>"
endif
Next
response.write"</table>"
setobjFC=nothing
setobjF=nothing
setobjFSO=nothing
%>

实现规模效益。与传统的用户拥有硬件软件所有权和使用权以及传统的应用服务商提供一对一的服务模式不同,ASP拥有应用系统所有权,用户拥有使用权,应用系统集中放在ASP的数据中心中,集中管理,分散使用,以一对多的租赁的形式为众多用户提供有品质保证的应用技术服务,实现规模效益。
小魔女 该用户已被删除
沙发
发表于 2015-1-20 06:33:48 | 只看该作者
你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
愤怒的大鸟 该用户已被删除
板凳
发表于 2015-1-25 17:34:16 | 只看该作者
以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。
只想知道 该用户已被删除
地板
发表于 2015-1-31 05:16:55 | 只看该作者
兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的
若相依 该用户已被删除
5#
发表于 2015-2-6 17:25:30 | 只看该作者
尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。
再见西城 该用户已被删除
6#
发表于 2015-2-17 16:17:36 | 只看该作者
代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
深爱那片海 该用户已被删除
7#
发表于 2015-3-5 20:48:11 | 只看该作者
ASP的语言不仅仅只是命令格式差不多,而是包含在<%%>之内的命令完全就是VB语法。虽然ASP也是做为单独的一个技术来提出的,但他就是完全继承了VB所有的功能。
乐观 该用户已被删除
8#
发表于 2015-3-12 14:52:15 | 只看该作者
以HTML语言整合(HTML负责界面上,ASP则负责功能上)形成一个B/S(浏览器/服务器)模式的网页程序。
分手快乐 该用户已被删除
9#
发表于 2015-3-19 23:04:33 | 只看该作者
作为IE上广为流传的动态网页开发技术,ASP以它简单易学博得了广大WEB程序爱好这的青睐,而且它对运行环境和开发品台的不挑剔,以及有大量有效的参考手册,极大的推广了它的发展。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-25 12:56

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表