{"id":233,"date":"2008-12-05T09:55:46","date_gmt":"2008-12-05T01:55:46","guid":{"rendered":""},"modified":"2014-02-27T23:00:57","modified_gmt":"2014-02-27T15:00:57","slug":"adodb-stream%e5%8f%96%e5%be%97%e5%9b%be%e5%83%8f%e7%9a%84%e9%ab%98%e5%ae%bd","status":"publish","type":"post","link":"http:\/\/www.xiaoyebailong.com\/index.php\/2008\/12\/05\/233.htm","title":{"rendered":"Adodb.Stream\u53d6\u5f97\u56fe\u50cf\u7684\u9ad8\u5bbd"},"content":{"rendered":"<div class=\"introtxt\" id=\"introtxt\">\n<p>\u4e0a\u4f20\u56fe\u7247\u6216\u663e\u793aSWF\u7684\u65f6\u5019\u90fd\u5e0c\u671b\u5f97\u5230\u5b83\u7684\u9ad8\u5ea6\u548c\u5bbd\u5ea6<\/p>\n<p>\u57fa\u672c\u539f\u7406\u4f7f\u7528Adodb.Stream\u8bfb\u4e8c\u8fdb\u5236\u6587\u4ef6\u7136\u540e\u8fdb\u884c\u89e3\u6790\uff0c\u7136\u540e\u8fd4\u56de\u4e00\u6570\u7ec4<br \/>\n\u7b2c\u4e00\u4e2a\u5143\u7d20\u4e3a\u7c7b\u578b(BMP JPG PNG GIF SWF)<br \/>\n\u7b2c\u4e8c\u4e2a\u5143\u7d20\u4e3a\u5bbd\u5ea6{width}<br \/>\n\u7b2c\u4e09\u4e2a\u5143\u7d20\u4e3a\u9ad8\u5ea6{height}<br \/>\n\u7b2c\u56db\u4e2a\u5143\u7d20\u4e3awidth={width},height={height}\u5f0f\u5b57\u7b26\u4e32<\/p>\n<p>Class qswhImg<br \/>\n&nbsp;dim aso<br \/>\n&nbsp;Private Sub Class_Initialize<br \/>\n&nbsp;&nbsp;set aso=CreateObject(&quot;Adodb.Stream&quot;)<br \/>\n&nbsp;&nbsp;aso.Mode=3 <br \/>\n&nbsp;&nbsp;aso.Type=1 <br \/>\n&nbsp;&nbsp;aso.Open <br \/>\n&nbsp;End Sub<br \/>\n&nbsp;Private Sub Class_Terminate<br \/>\n&nbsp;&nbsp;set aso=nothing<br \/>\n&nbsp;End Sub<\/p>\n<p>&nbsp;Private Function Bin2Str(Bin)<br \/>\n&nbsp;&nbsp;Dim I, Str<br \/>\n&nbsp;&nbsp;For I=1 to LenB(Bin)<br \/>\n&nbsp;&nbsp;&nbsp;clow=MidB(Bin,I,1)<br \/>\n&nbsp;&nbsp;&nbsp;if ASCB(clow)&lt;128 then<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;Str = Str &amp; Chr(ASCB(clow))<br \/>\n&nbsp;&nbsp;&nbsp;else<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;I=I+1<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;if I &lt;= LenB(Bin) then Str = Str &amp; Chr(ASCW(MidB(Bin,I,1)&amp;clow))<br \/>\n&nbsp;&nbsp;&nbsp;end if<br \/>\n&nbsp;&nbsp;Next <br \/>\n&nbsp;&nbsp;Bin2Str = Str<br \/>\n&nbsp;End Function<br \/>\n&nbsp;<br \/>\n&nbsp;Private Function Num2Str(num,base,lens)<br \/>\n&nbsp;&nbsp;&#8216;qiushuiwuhen (2002-8-12)<br \/>\n&nbsp;&nbsp;dim ret<br \/>\n&nbsp;&nbsp;ret = &quot;&quot;<br \/>\n&nbsp;&nbsp;while(num&gt;=base)<br \/>\n&nbsp;&nbsp;&nbsp;ret = (num mod base) &amp; ret<br \/>\n&nbsp;&nbsp;&nbsp;num = (num &#8211; num mod base)\/base<br \/>\n&nbsp;&nbsp;wend<br \/>\n&nbsp;&nbsp;Num2Str = right(string(lens,&quot;0&quot;) &amp; num &amp; ret,lens)<br \/>\n&nbsp;End Function<br \/>\n&nbsp;<br \/>\n&nbsp;Private Function Str2Num(str,base)<br \/>\n&nbsp;&nbsp;&#8216;qiushuiwuhen (2002-8-12)<br \/>\n&nbsp;&nbsp;dim ret<br \/>\n&nbsp;&nbsp;ret = 0<br \/>\n&nbsp;&nbsp;for i=1 to len(str)<br \/>\n&nbsp;&nbsp;&nbsp;ret = ret *base + cint(mid(str,i,1))<br \/>\n&nbsp;&nbsp;next<br \/>\n&nbsp;&nbsp;Str2Num=ret<br \/>\n&nbsp;End Function<br \/>\n&nbsp;<br \/>\n&nbsp;Private Function BinVal(bin)<br \/>\n&nbsp;&nbsp;&#8216;qiushuiwuhen (2002-8-12)<br \/>\n&nbsp;&nbsp;dim ret<br \/>\n&nbsp;&nbsp;ret = 0<br \/>\n&nbsp;&nbsp;for i = lenb(bin) to 1 step -1<br \/>\n&nbsp;&nbsp;&nbsp;ret = ret *256 + ascb(midb(bin,i,1))<br \/>\n&nbsp;&nbsp;next<br \/>\n&nbsp;&nbsp;BinVal=ret<br \/>\n&nbsp;End Function<br \/>\n&nbsp;<br \/>\n&nbsp;Private Function BinVal2(bin)<br \/>\n&nbsp;&nbsp;&#8216;qiushuiwuhen (2002-8-12)<br \/>\n&nbsp;&nbsp;dim ret<br \/>\n&nbsp;&nbsp;ret = 0<br \/>\n&nbsp;&nbsp;for i = 1 to lenb(bin)<br \/>\n&nbsp;&nbsp;&nbsp;ret = ret *256 + ascb(midb(bin,i,1))<br \/>\n&nbsp;&nbsp;next<br \/>\n&nbsp;&nbsp;BinVal2=ret<br \/>\n&nbsp;End Function<br \/>\n&nbsp;<br \/>\n&nbsp;Function getImageSize(filespec)&nbsp;<br \/>\n&nbsp;&nbsp;&#8216;qiushuiwuhen (2002-9-3)<br \/>\n&nbsp;&nbsp;dim ret(3)<br \/>\n&nbsp;&nbsp;aso.LoadFromFile(filespec)<br \/>\n&nbsp;&nbsp;bFlag=aso.read(3)<br \/>\n&nbsp;&nbsp;select case hex(binVal(bFlag))<br \/>\n&nbsp;&nbsp;case &quot;4E5089&quot;:<br \/>\n&nbsp;&nbsp;&nbsp;aso.read(15)<br \/>\n&nbsp;&nbsp;&nbsp;ret(0)=&quot;PNG&quot;<br \/>\n&nbsp;&nbsp;&nbsp;ret(1)=BinVal2(aso.read(2))<br \/>\n&nbsp;&nbsp;&nbsp;aso.read(2)<br \/>\n&nbsp;&nbsp;&nbsp;ret(2)=BinVal2(aso.read(2))<br \/>\n&nbsp;&nbsp;case &quot;464947&quot;:<br \/>\n&nbsp;&nbsp;&nbsp;aso.read(3)<br \/>\n&nbsp;&nbsp;&nbsp;ret(0)=&quot;GIF&quot;<br \/>\n&nbsp;&nbsp;&nbsp;ret(1)=BinVal(aso.read(2))<br \/>\n&nbsp;&nbsp;&nbsp;ret(2)=BinVal(aso.read(2))<br \/>\n&nbsp;&nbsp;case &quot;535746&quot;:<br \/>\n&nbsp;&nbsp;&nbsp;aso.read(5)<br \/>\n&nbsp;&nbsp;&nbsp;binData=aso.Read(1)<br \/>\n&nbsp;&nbsp;&nbsp;sConv=Num2Str(ascb(binData),2 ,8)<br \/>\n&nbsp;&nbsp;&nbsp;nBits=Str2Num(left(sConv,5),2)<br \/>\n&nbsp;&nbsp;&nbsp;sConv=mid(sConv,6)<br \/>\n&nbsp;&nbsp;&nbsp;while(len(sConv)&lt;nBits*4)<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;binData=aso.Read(1)<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;sConv=sConv&amp;Num2Str(ascb(binData),2 ,8)<br \/>\n&nbsp;&nbsp;&nbsp;wend<br \/>\n&nbsp;&nbsp;&nbsp;ret(0)=&quot;SWF&quot;<br \/>\n&nbsp;&nbsp;&nbsp;ret(1)=int(abs(Str2Num(mid(sConv,1*nBits+1,nBits),2)-Str2Num(mid(sConv,0*nBits+1,nBits),2))\/20)<br \/>\n&nbsp;&nbsp;&nbsp;ret(2)=int(abs(Str2Num(mid(sConv,3*nBits+1,nBits),2)-Str2Num(mid(sConv,2*nBits+1,nBits),2))\/20)<br \/>\n&nbsp;&nbsp;case &quot;FFD8FF&quot;:<br \/>\n&nbsp;&nbsp;&nbsp;do <br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;d&nbsp;p1=binVal(aso.Read(1)):&nbsp;loop while p1=255 and not aso.EOS<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;if p1&gt;191 and p1&lt;196 then exit do else&nbsp;aso.read(binval2(aso.Read(2))-2)<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;dp1=binVal(aso.Read(1)):loop while p1&lt;255 and not aso.EOS<br \/>\n&nbsp;&nbsp;&nbsp;loop while true<br \/>\n&nbsp;&nbsp;&nbsp;aso.Read(3)<br \/>\n&nbsp;&nbsp;&nbsp;ret(0)=&quot;JPG&quot;<br \/>\n&nbsp;&nbsp;&nbsp;ret(2)=binval2(aso.Read(2))<br \/>\n&nbsp;&nbsp;&nbsp;ret(1)=binval2(aso.Read(2))<br \/>\n&nbsp;&nbsp;case else:<br \/>\n&nbsp;&nbsp;&nbsp;if left(Bin2Str(bFlag),2)=&quot;BM&quot; then<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;aso.Read(15)<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;ret(0)=&quot;BMP&quot;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;ret(1)=binval(aso.Read(4))<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;ret(2)=binval(aso.Read(4))<br \/>\n&nbsp;&nbsp;&nbsp;else<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;ret(0)=&quot;&quot;<br \/>\n&nbsp;&nbsp;&nbsp;end if<br \/>\n&nbsp;&nbsp;end select<br \/>\n&nbsp;&nbsp;ret(3)=&quot;width=&quot;&quot;&quot; &amp; ret(1) &amp;&quot;&quot;&quot; height=&quot;&quot;&quot; &amp; ret(2) &amp;&quot;&quot;&quot;&quot;<br \/>\n&nbsp;&nbsp;getimagesize=ret<br \/>\n&nbsp;End Function<br \/>\nEnd Class<br \/>\n&nbsp;<\/p>\n<p>\u4f7f\u7528\u8303\u4f8b\uff08\u8bfb\u67d0\u76ee\u5f55\u4e0b\u6240\u6709\u56fe\u7247\u7684\u5bbd\u5ea6\uff09\uff1a<br \/>\n&nbsp;set qswh=new qswhImg<\/p>\n<p>&nbsp;Set fso = CreateObject(&quot;Scripting.FileSystemObject&quot;)<br \/>\n&nbsp;Set f = fso.GetFolder(server.mappath(&quot;.&quot;))<br \/>\n&nbsp;Set fc = f.Files<br \/>\n&nbsp;For Each f1 in fc<br \/>\n&nbsp;&nbsp;ext=fso.GetExtensionName(f1.path)<br \/>\n&nbsp;&nbsp;select case ext<br \/>\n&nbsp;&nbsp;case &quot;gif&quot;,&quot;bmp&quot;,&quot;jpg&quot;,&quot;png&quot;:<br \/>\n&nbsp;&nbsp;&nbsp;arr=qswh.getImageSize(f1.path)<br \/>\n&nbsp;&nbsp;&nbsp;response.write &quot;&lt;br&gt;&quot; &amp; arr(0) &amp; &quot; &quot; &amp; arr(3) &amp; &quot;:&quot; &amp; f1.name &amp; &quot; width:&quot; &amp; arr(1) &amp; &quot; height:&quot; &amp; arr(2)<br \/>\n&nbsp;&nbsp;case &quot;swf&quot;<br \/>\n&nbsp;&nbsp;&nbsp;arr=qswh.getimagesize(f1.path)<br \/>\n&nbsp;&nbsp;&nbsp;response.write &quot;&lt;br&gt;&quot; &amp; arr(0) &amp; &quot; &quot; &amp; arr(3) &amp; &quot;:&quot; &amp; f1.name &amp; &quot; width:&quot; &amp; arr(1) &amp; &quot; height:&quot; &amp; arr(2)<br \/>\n&nbsp;&nbsp;end select<br \/>\n&nbsp;&nbsp;<br \/>\n&nbsp;Next<br \/>\n&nbsp;Set fc=nothing<br \/>\n&nbsp;Set f=nothing<br \/>\n&nbsp;Set fso=nothing<br \/>\n&nbsp;Set qswh=nothing<\/p>\n<p>ps.\u5176\u4e2dswf\u90e8\u5206\u7684\u53c2\u8003\u8d44\u6599\u7531\u84dd\u8272\u63d0\u4f9b\uff0c:p<\/p>\n<p>\u84dd\u8272\u8865\u5145\uff1a\u7531\u4e8e flashmx \u91c7\u7528\u4e86\u65b0\u7684\u538b\u7f29\u683c\u5f0f swf\uff0c\u6240\u4ee5\u53d6 flashmx \u538b\u7f29\u683c\u5f0f\u7684 swf \u6587\u4ef6\u957f\u5bbd\u5e76\u4e0d\u4f1a\u51c6\u786e\uff0c\u89e3\u51b3\u529e\u6cd5\uff0c\u6b63\u5728\u7814\u7a76\u4e2d\u3002<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u4e0a\u4f20\u56fe\u7247\u6216\u663e\u793aSWF\u7684\u65f6\u5019\u90fd\u5e0c\u671b\u5f97\u5230\u5b83\u7684\u9ad8\u5ea6\u548c\u5bbd\u5ea6 \u57fa\u672c\u539f\u7406\u4f7f\u7528Adodb.Stream\u8bfb\u4e8c\u8fdb\u5236\u6587\u4ef6\u7136\u540e\u8fdb\u884c\u89e3\u6790\uff0c\u7136\u540e\u8fd4\u56de\u4e00\u6570\u7ec4 \u7b2c\u4e00\u4e2a\u5143\u7d20\u4e3a\u7c7b\u578b(BMP JPG PNG GIF SWF) \u7b2c\u4e8c\u4e2a\u5143\u7d20\u4e3a\u5bbd\u5ea6{width} \u7b2c\u4e09\u4e2a\u5143\u7d20\u4e3a\u9ad8\u5ea6{&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"topic":[],"class_list":["post-233","post","type-post","status-publish","format-standard","hentry","category-technology"],"_links":{"self":[{"href":"http:\/\/www.xiaoyebailong.com\/index.php\/wp-json\/wp\/v2\/posts\/233","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.xiaoyebailong.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.xiaoyebailong.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.xiaoyebailong.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.xiaoyebailong.com\/index.php\/wp-json\/wp\/v2\/comments?post=233"}],"version-history":[{"count":1,"href":"http:\/\/www.xiaoyebailong.com\/index.php\/wp-json\/wp\/v2\/posts\/233\/revisions"}],"predecessor-version":[{"id":66110,"href":"http:\/\/www.xiaoyebailong.com\/index.php\/wp-json\/wp\/v2\/posts\/233\/revisions\/66110"}],"wp:attachment":[{"href":"http:\/\/www.xiaoyebailong.com\/index.php\/wp-json\/wp\/v2\/media?parent=233"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.xiaoyebailong.com\/index.php\/wp-json\/wp\/v2\/categories?post=233"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.xiaoyebailong.com\/index.php\/wp-json\/wp\/v2\/tags?post=233"},{"taxonomy":"topic","embeddable":true,"href":"http:\/\/www.xiaoyebailong.com\/index.php\/wp-json\/wp\/v2\/topic?post=233"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}