专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »Asp教程 » fso删除文件:用FSO获得图片文件的信息 »正文

fso删除文件:用FSO获得图片文件的信息

来源: 发布时间:星期四, 2009年2月12日 浏览:96次 评论:0


<%
\'\':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
\'\':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
\'\'::: BMP, GIF, JPG and PNG :::
\'\':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
\'\':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
\'\'::: :::
\'\'::: This function gets a specied number of s from any :::
\'\'::: file, starting at the off (base 1) :::
\'\'::: :::
\'\'::: Passed: :::
\'\'::: flnm => Filespec of file to read :::
\'\'::: off => Off at which to start reading :::
\'\'::: s => How many s to read :::
\'\'::: :::
\'\':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
function GetBytes(flnm, off, s)
Dim objFSO
Dim objFTemp
Dim objTextStream
Dim lngSize
on error resume next
Set objFSO = CreateObject(\"Scripting.FileObject\")

\'\' First, we get the filesize
Set objFTemp = objFSO.GetFile(flnm)
lngSize = objFTemp.Size
objFTemp = nothing
fsoForReading = 1
Set objTextStream = objFSO.OpenTextFile(flnm, fsoForReading)
off > 0 then
strBuff = objTextStream.Read(off - 1)
end
s = -1 then \'\' Get All!
GetBytes = objTextStream.Read(lngSize) \'\'ReadAll

GetBytes = objTextStream.Read(s)
end
objTextStream.Close
objTextStream = nothing
objFSO = nothing
end function
\'\':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
\'\'::: :::
\'\'::: Functions to convert two s to a numeric value (long) :::
\'\'::: (both little-endian and big-endian) :::
\'\'::: :::
\'\':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
function lngConvert(strTemp)
lngConvert = clng(asc(left(strTemp, 1)) + ((asc(right(strTemp, 1)) * 256)))
end function
function lngConvert2(strTemp)
lngConvert2 = clng(asc(right(strTemp, 1)) + ((asc(left(strTemp, 1)) * 256)))
end function

\'\':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
\'\'::: :::
\'\'::: This function does most of the real work. It will attempt :::
\'\'::: to read any file, regardless of the extension, and will :::
\'\'::: identy it is a graphical image. :::
\'\'::: :::
\'\'::: Passed: :::
\'\'::: flnm => Filespec of file to read :::
\'\'::: width => width of image :::
\'\'::: height => height of image :::
\'\'::: depth => color depth (in number of colors) :::
\'\'::: strImageType=> type of image (e.g. GIF, BMP, etc.) :::
\'\'::: :::
\'\':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
function gfxSpex(flnm, width, height, depth, strImageType)
dim strPNG
dim strGIF
dim strBMP
dim strType
strType = \"\"
strImageType = \"(unknown)\"
gfxSpex = False
strPNG = chr(137) & chr(80) & chr(78)
strGIF = \"GIF\"
strBMP = chr(66) & chr(77)
strType = GetBytes(flnm, 0, 3)
strType = strGIF then \'\' is GIF
strImageType = \"GIF\"
Width = lngConvert(GetBytes(flnm, 7, 2))
Height = lngConvert(GetBytes(flnm, 9, 2))
Depth = 2 ^ ((asc(GetBytes(flnm, 11, 1)) and 7) + 1)
gfxSpex = True
left(strType, 2) = strBMP then \'\' is BMP
strImageType = \"BMP\"
Width = lngConvert(GetBytes(flnm, 19, 2))
Height = lngConvert(GetBytes(flnm, 23, 2))
Depth = 2 ^ (asc(GetBytes(flnm, 29, 1)))
gfxSpex = True
strType = strPNG then \'\' Is PNG
strImageType = \"PNG\"
Width = lngConvert2(GetBytes(flnm, 19, 2))
Height = lngConvert2(GetBytes(flnm, 23, 2))
Depth = getBytes(flnm, 25, 2)
select asc(right(Depth,1))
0
Depth = 2 ^ (asc(left(Depth, 1)))
gfxSpex = True
2
Depth = 2 ^ (asc(left(Depth, 1)) * 3)
gfxSpex = True
3
Depth = 2 ^ (asc(left(Depth, 1))) \'\'8
gfxSpex = True
4
Depth = 2 ^ (asc(left(Depth, 1)) * 2)
gfxSpex = True
6
Depth = 2 ^ (asc(left(Depth, 1)) * 4)
gfxSpex = True

Depth = -1
end select


strBuff = GetBytes(flnm, 0, -1) \'\' Get all s from file
lngSize = len(strBuff)
flgFound = 0
strTarget = chr(255) & chr(216) & chr(255)
flgFound = instr(strBuff, strTarget)
flgFound = 0 then
exit function
end
strImageType = \"JPG\"
lngPos = flgFound + 2
ExitLoop = false
do while ExitLoop = False and lngPos < lngSize

do while asc(mid(strBuff, lngPos, 1)) = 255 and lngPos < lngSize
lngPos = lngPos + 1
loop
asc(mid(strBuff, lngPos, 1)) < 192 or asc(mid(strBuff, lngPos, 1)) > 195 then
lngMarkerSize = lngConvert2(mid(strBuff, lngPos + 1, 2))
lngPos = lngPos + lngMarkerSize + 1

ExitLoop = True
end
loop
\'\'
ExitLoop = False then
Width = -1
Height = -1
Depth = -1

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
end

end
end function

\'\':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
\'\'::: Test Harness :::
\'\':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

\'\' To test, we\'\'ll just try to show all files with a .GIF extension in the root of C:
Set objFSO = CreateObject(\"Scripting.FileObject\")
Set objF = objFSO.GetFolder(\"c:\\\")
Set objFC = objF.Files
response.write \"<table border=\"\"0\"\" cellpadding=\"\"5\"\">\"
For Each f1 in objFC
instr(u(f1.Name), \".GIF\") then
response.write \"<tr><td>\" & f1.name & \"</td><td>\" & f1.DateCreated & \"</td><td>\" & f1.Size & \"</td><td>\"
gfxSpex(f1.Path, w, h, c, strType) = true then
response.write w & \" x \" & h & \" \" & c & \" colors\"

response.write \" \"
end
response.write \"</td></tr>\"
end
Next
response.write \"</table>\"
objFC = nothing
objF = nothing
objFSO = nothing

%>

0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: