查看完整版本: 在asp文件中访问flash详细信息

豹子 2007-6-23 10:29

在asp文件中访问flash详细信息

% W f,J!O*l

["j%m!L3AAu"KzK a[   
(Ge.xKu @,KB
h H\4TT5Z)@ Class SWFDump   U{.Qs[)KQ

5h w^2r z9a3n Private header
pM1Ys"a4X};l Private RECTdata(C+l Z,`;aC$?
Private nBits
C*f!s.A0Wb Private mversion(Wc x5Nk`)f+]$d.H
Private mfilelen m i"N \U;w-d-f3j.za&?
Private mxMinLlq9_x Sh,ns
Private mxMax
m1U!])DV*PW"z)dH Private myMin
xQW6V9dA2@~ Private myMax {yvwM5R8r(x
Private mheigtl2avE5X*[,J
Private mwidth
~*eKz)dvFJ Private mframerateiI)Ly^X6b ?dm9b
Private mframecount  
[MBv2[H]Q x'S%vh4K
)Tr0T7l%H$I Private Sub Class_Initialize()  Ud:T$owu
8|"I,g:ZEK
End Sub  u6EooFvO_
-c!p.A^h l9\
Private Sub Class_Terminate()  
5g#W`*l/s N-?
.? h oLV End Sub  Vs[9VY:iD

i5K2Q,H,Z#ux`L$z+i&P n2Qv|)K?K*dg
Private Function ReadHeader (filename)
R:g4[WVn7v Const ForReading = 1, ForWriting = 2, ForAppending = 8
-{Ga2?(T i Dim fso, f
!nT` Cp3_t:]] @5pr Set fso = CreateObject("Scripting.FileSystemObject")
K5gmZueO(Z Set f = fso.OpenTextFile(filename, ForReading)]+JJV0YmVC
ReadHeader = f.Read(21)Wqh$x Xw,e e
End Function  !C:aF+g0\)a

ci`8yH(J xh)Q Private Function ToBin(inNumber, OutLenStr )_?pFq$^}MJ C2h
Dim binary(O6^v@ ~SQp3D.vH
binary = ""8W\5WU~ z)X
do while inNumber = 1%K?A&V@A"S xV8P6R
binary = binary  inNumber mod 2
"|$w2z#O I _%[y } inNumber = inNumber \ 2
6QGt)E5Tz)C{~7Z/d loop
4o"`n] I;nr binary = binary  String(OutLenStr - len(binary), "0")
.ug+x4_(}I;J:L ToBin = StrReverse(binary)
+HL'C-JF&_ End Function  1Xxdc]

:s }1Mr)b9b Private Function Bin2Decimal(inBin)
EC6]L |r@^ Dim counter
oA6X mX;lmUuy1G Dim temptEvk5L.c7c Z
Dim Value:[z3s:`ZH$e
inBin = StrReverse(inBin)
+?zB^j4_ temp = 0
c0H4qbE!R9t For counter = 1 to Len(inBin)q5g;}2\ c+_pg
If counter = 1 then
!~*B S8h)t^ Value = 1
M wQ6k[Nu N Else
|0f_i ]{ Value = Value * 2m0eD0Oi*X q
End IfwbaO"\'a
temp = temp   mid(inBin, counter ,1) * ValueX;Fw%X5{oe6w
Next
G-d FWEuNj Bin2Decimal = temp%F/sk` V o"H%VW
End Function  
Paz]!w QW q8tdo([1[ Q
Public Function SWFDump(fileName)  3r h/}l eg

{FIQ%U0LY%R Jt6V k header = ReadHeader (fileName)
5tMMM;U2JC } mversion = asc(mid(header,4,1))G p]g0v8]y;by
mfilelen = asc(mid(header,5,1))
^W-]/P~y)H mfilelen = mfilelen   asc(mid(header,6,1)) * 256
u-LJ#Z7Iw%~ q5S mfilelen = mfilelen   asc(mid(header,7,1)) * 256 * 256
K,jS0ik9} mfilelen = mfilelen   asc(mid(header,8,1)) * 256 * 256 * 256  
1Y AeP \~+uxr
i8Vm%CB `5V RECTdata = ToBin(asc(mid(header,9,1)),8)"`-e-c[C R*fpu
RECTdata = RECTdata  ToBin(asc(mid(header,10,1)),8)
Wu;kksw RECTdata = RECTdata  ToBin(asc(mid(header,11,1)),8)~9aj(Yc Pg7a3@R
RECTdata = RECTdata  ToBin(asc(mid(header,12,1)),8)
eK_M _ RECTdata = RECTdata  ToBin(asc(mid(header,13,1)),8)4V#u D ^8|
RECTdata = RECTdata  ToBin(asc(mid(header,14,1)),8)z0gc:I+i6]&s#lP X/w#{
RECTdata = RECTdata  ToBin(asc(mid(header,15,1)),8)
9W&L `5X*|_H%f/F RECTdata = RECTdata  ToBin(asc(mid(header,16,1)),8)
IsP7@e.z.J1E4X RECTdata = RECTdata  ToBin(asc(mid(header,17,1)),8)  
)E2A|2?r%F +\*e$JCy,P8TEh
nBits = Mid(RECTdata,1,5)ly y@d$B;Z
nBits = Bin2Decimal(nBits)  
0P/M%FB|%j
Ta/C-Ql0Qp6E%o mxMin = Bin2Decimal(Mid(RECTdata,6,nBits))yW&G7SkFPj
mxMax = Bin2Decimal(Mid(RECTdata,6   nBits * 1 ,nBits))!B)? M.W'jiK7\
myMin = Bin2Decimal(Mid(RECTdata,6   nBits * 2 ,nBits))3w;h(mx7Y1c:y4B
myMax = Bin2Decimal(Mid(RECTdata,6   nBits * 3 ,nBits))  
F9xva!Kf`
yo1^a%r*t ~%B~ mheigt = (myMax - myMin) / 20
^TQX)qg`1k mwidth = (mxMax - mxMin) / 20  
-E Uk[c)\S$LC
@4x)~+uhC mframerate = asc(mid(header,18,1))  r$HS!vXM
3A$qQ.S&YF5Q`{
mframecount = asc(mid(header,19,1))
Rq;r\ e X^D@ mframecount = mframecount   asc(mid(header,20,1)) * 256  
F0Z`*w K)DyL mzJ'~8C(j;m3w&`
End Function  
;r]8q%l0^/e1qe 9I-XZK!Dz
:~s4u#Y h7q-V6v
Public Property Get Heigt();m6b(buj,L4^+L
Heigt = mheigt
`5l |"X)I0CT[;x End Property  
+w]D NP2r3Z:M
i1eO^ Z ?yO Public Property Get Width()
!boM(_6d0V7Kz X Width = mwidth
o2Q!]6L]J6YOzHH End Property   O:@%pwZPz

%|yq OT Zc8a6~#O Public Property Get Version()
-c"O:ZU*A*A5M4w1G Version = mversion
GK&F:jb lnA End Property  -vt[ ?{f

?B ?z!O2r[U;U Public Property Get FileLen()
Xay\~qm8A;d FileLen = mfilelen
(M c{j A5S%E;\ End Property  
Kn|| p^a QN &Pu4QVL
Public Property Get xMin()
$EQ8H1|zA xMin = mxMin+}J*v6uTL
End Property  
U d'mM$VA _3BL3F!i'h
Public Property Get xMax()
~of l"t0@P*o xMax = mxMax
9b1fHYoQ End Property  t4U/^0Z}p/k a}
j MOBul
Public Property Get yMin()S8Y Vb{H L
yMin = myMin
@4a_] }zt5Q End Property  
1i2g$L r`AJdbH,L
{!an d/@?$m9T? Public Property Get yMax()
n7EdzUl3l+ZD0_ yMax = myMaxD?,wN$ddFG?*?
End Property  
!Vpf;Sl@6eUzp"k r4Wty]
Public Property Get Framerate()@Yk$SK i Ksc
Framerate = mframerate
5z[0p#r'SY End Property  
2o@C9pu7Si \AcX0T:_(|
Public Property Get Framecount()
G7n2wE9LU%U ed Framecount = mframecount
0O3q#V N*Jk5tnTm End Property
"_W&AQ%c6E a End ClassQFzj1|
%  
m/w@|1~%@X
am0]5k5TpA4O&N 做成包含文件swfheaderdump.incW)nF4rH2z
调用:  nW9T.j0Z5YD#e

'h8p6@&G$fuN;i !-- #include file="swfheaderdump.inc" --)T!sxt-HW(w
%
D~5DM ^@~:m2HN ' Pass the SWF name in querystring this way/rdlL4[ {(Kv
' swfdump.asp?swf=yourmovie.swfUdt GNBC3Y&m,a#`
$o;~ o)ut Z
set myObj = new swfdump
i4pP U%L@.zb:`j myObj.SWFDump (Server.MapPath(request("swf")))j6Ii+JSoF

o}?C |}!s"F8r~ Response.Write "Heigt (pixel) = "  myObj.Heigt  "br"Nt}:E{&amg
Response.Write "Width (pixel) = "  myObj.Width  "br"_,m.p;P{|
Response.Write "Version = "  myObj.Version  "br"h @/V{,b niq
Response.Write "FileLen (bytes) = "  myObj.FileLen  "br"
yJey!E Response.Write "xMin (twips) = "  myObj.xMin  "br"pVRK9}3M(y
Response.Write "xMax (twips) = "  myObj.xMax  "br"
[6F/`s}+xnw,J Response.Write "yMin (twips) = "  myObj.yMin  "br"
j t;V)\6u Response.Write "yMax (twips) = "  myObj.yMax  "br"I,Ex]2^U5EX
Response.Write "FrameRate = "  myObj.FrameRate  "br"
'?E?8I [ Q`_g Response.Write "FrameCount = "  myObj.FrameCount  "br"
/V9}7Iu3v ~-o'w2E %
页: [1]
查看完整版本: 在asp文件中访问flash详细信息