分享
 
 
 

ASP中FSO相关技术的总结

王朝asp·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

FSO(FileSystemObject)是微软ASP的一个对文件操作的控件,该控件可以对服务器进行读取、新建、修改、删除目录以及文件的操作。是ASP编程中非常有用的一个控件。但是因为权限控制的问题,很多虚拟主机服务器的FSO反而成为这台服务器的一个公开的后门,因为客户可以在自己的ASP网页里面直接就对该控件编程,从而控制该服务器甚至删除服务器上的文件。

使用FSO修改文件特定内容的函数

function FSOchange(filename,Target,String)

Dim objFSO,objCountFile,FiletempData

Set objFSO = Server.CreateObject("scripting.FileSystemObject")

Set objCountFile = objFSO.OpenTextFile(Server.MapPath(filename),1,True)

FiletempData = objCountFile.ReadAll

objCountFile.Close

FiletempData=Replace(FiletempData,Target,String)

Set objCountFile=objFSO.CreateTextFile(Server.MapPath(filename),True)

objCountFile.Write FiletempData

objCountFile.Close

Set objCountFile=Nothing

Set objFSO = Nothing

End Function

使用FSO读取文件内容的函数

function FSOFileRead(filename)

Dim objFSO,objCountFile,FiletempData

Set objFSO = Server.CreateObject("scripting.FileSystemObject")

Set objCountFile = objFSO.OpenTextFile(Server.MapPath(filename),1,True)

FSOFileRead = objCountFile.ReadAll

objCountFile.Close

Set objCountFile=Nothing

Set objFSO = Nothing

End Function

使用FSO读取文件某一行的函数

function FSOlinedit(filename,lineNum)

if linenum < 1 then exit function

dim fso,f,temparray,tempcnt

set fso = server.CreateObject("scripting.filesystemobject")

if not fso.fileExists(server.mappath(filename)) then exit function

set f = fso.opentextfile(server.mappath(filename),1)

if not f.AtEndofStream then

tempcnt = f.readall

f.close

set f = nothing

temparray = split(tempcnt,chr(13)&chr(10))

if lineNum>ubound(temparray)+1 then

exit function

else

FSOlinedit = temparray(lineNum-1)

end if

end if

end function

使用FSO写文件某一行的函数

function FSOlinewrite(filename,lineNum,Linecontent)

if linenum < 1 then exit function

dim fso,f,temparray,tempCnt

set fso = server.CreateObject("scripting.filesystemobject")

if not fso.fileExists(server.mappath(filename)) then exit function

set f = fso.opentextfile(server.mappath(filename),1)

if not f.AtEndofStream then

tempcnt = f.readall

f.close

temparray = split(tempcnt,chr(13)&chr(10))

if lineNum>ubound(temparray)+1 then

exit function

else

temparray(lineNum-1) = lineContent

end if

tempcnt = join(temparray,chr(13)&chr(10))

set f = fso.createtextfile(server.mappath(filename),true)

f.write tempcnt

end if

f.close

set f = nothing

end function

使用FSO添加文件新行的函数

function FSOappline(filename,Linecontent)

dim fso,f

set fso = server.CreateObject("scripting.filesystemobject")

if not fso.fileExists(server.mappath(filename)) then exit function

set f = fso.opentextfile(server.mappath(filename),8,1)

f.write chr(13)&chr(10)&Linecontent

f.close

set f = nothing

end function

读文件最后一行的函数

function FSOlastline(filename)

dim fso,f,temparray,tempcnt

set fso = server.CreateObject("scripting.filesystemobject")

if not fso.fileExists(server.mappath(filename)) then exit function

set f = fso.opentextfile(server.mappath(filename),1)

if not f.AtEndofStream then

tempcnt = f.readall

f.close

set f = nothing

temparray = split(tempcnt,chr(13)&chr(10))

FSOlastline = temparray(ubound(temparray))

end if

end function

利用FSO取得BMP,JPG,PNG,GIF文件信息(大小,宽、高等)

<%

'::: BMP, GIF, JPG and PNG :::

'::: This function gets a specified number of bytes from any :::

'::: file, starting at the offset (base 1) :::

'::: :::

'::: Passed: :::

'::: flnm => Filespec of file to read :::

'::: offset => Offset at which to start reading :::

'::: bytes => How many bytes to read :::

'::: :::

':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

function GetBytes(flnm, offset, bytes)

Dim objFSO

Dim objFTemp

Dim objTextStream

Dim lngSize

on error resume next

Set objFSO = CreateObject("scripting.FileSystemObject")

' First, we get the filesize

Set objFTemp = objFSO.GetFile(flnm)

lngSize = objFTemp.Size

set objFTemp = nothing

fsoForReading = 1

Set objTextStream = objFSO.OpenTextFile(flnm, fsoForReading)

if offset > 0 then

strBuff = objTextStream.Read(offset - 1)

end if

if bytes = -1 then ' Get All!

GetBytes = objTextStream.Read(lngSize) 'ReadAll

else

GetBytes = objTextStream.Read(bytes)

end if

objTextStream.Close

set objTextStream = nothing

set objFSO = nothing

end function

':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

'::: :::

'::: Functions to convert two bytes 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 :::

'::: identify if 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)

if 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

elseif 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

elseif 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 case asc(right(Depth,1))

case 0

Depth = 2 ^ (asc(left(Depth, 1)))

gfxSpex = True

case 2

Depth = 2 ^ (asc(left(Depth, 1)) * 3)

gfxSpex = True

case 3

Depth = 2 ^ (asc(left(Depth, 1))) '8

gfxSpex = True

case 4

Depth = 2 ^ (asc(left(Depth, 1)) * 2)

gfxSpex = True

case 6

Depth = 2 ^ (asc(left(Depth, 1)) * 4)

gfxSpex = True

case else

Depth = -1

end select

else

strBuff = GetBytes(flnm, 0, -1) ' Get all bytes from file

lngSize = len(strBuff)

flgFound = 0

strTarget = chr(255) & chr(216) & chr(255)

flgFound = instr(strBuff, strTarget)

if flgFound = 0 then

exit function

end if

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

if asc(mid(strBuf

[1] [2] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有