asp

位置:IT落伍者 >> asp >> 浏览文章

Asp文件操作函数集


发布日期:2019年10月18日
 
Asp文件操作函数集

<% ===============asp 文件操作函数集版本=========================

检查文件是否存在
Function CheckFile(sFileName)
CheckFile=false
Dim objFilesys
On Error Resume Next
Set objFilesys=servercreateobject("scriptingfilesystemobject")
If objFilesysFILEExists(sFileName) then 如果文件存在着删除它 FILE为文件路径
CheckFile=true
End if
Set objFilesys=nothing
End function
检查文件夹是否存在
Function CheckFolder(Chk_Path)
set fso = servercreateobject("scriptingfilesystemobject")
if fsoFolderExists(Chk_Path)=false then
CheckFolder=false
else
CheckFolder=true
end if
End function

得到文件后缀名
function GetFileExt(sFileName)
GetFileExt = UCase(Mid(sFileNameInStrRev (sFileName "")+))
End function

*******************************************************
作 用: ASP上传漏洞 "" 防范
函数名: TrueStr(fileTrue)
参 数: sFileName 文件名
返回值: 合法文件返回 True 否则返回False
*******************************************************
function IsTrueFileName(sFileName)
dim str_lenpos
str_len=len(sFileName)
pos=Instr(sFileNamechr())
If pos= or pos=str_len then
IsTrueFileName = true
else
IsTrueFileName = false
End If
End function
*******************************************************
作 用: 检测上传的图片文件(jpeggifbmppng)是否真的为图片
函数名: TrueStr(fileTrue)
参 数: sFileName 文件名(此处文件名是文件夹的物理全路径)
返回值: 确实为图片文件则返回 True 否则返回False
*******************************************************
Function IsImgFile(sFileName)
const adTypeBinary=
dim return
dim jpg():jpg()=CByte(&HFF):jpg()=CByte(&HD)
dim bmp():bmp()=CByte(&H):bmp()=CByte(&HD)
dim png():png()=CByte(&H):png()=CByte(&H):png()=CByte(&HE):png()=CByte(&H)
dim gif():gif()=CByte(&H):gif()=CByte(&H):gif()=CByte(&H):gif()=CByte(&H):gif()=CByte(&H):gif()=CByte(&H)

on error resume next

return=false
dim fstreamfileExtstampi
得到文件后缀并转化为小写
FileExt = LCase(GetFileExt(sFileName))
如果文件后缀为 jpgjpegbmpgifpng 中的任一种
则执行真实图片判断
If strInString(FileExt"jpg|jpeg|bmp|gif|png")=true then
Set fstream=Servercreateobject("ADODBStream")
fstreamOpen
fstreamType=adTypeBinary
fstreamLoadFromFile sFileName
fstreamposition=
select case LCase(FileExt)
case "jpg""jpeg"
stamp=fstreamread()
for i= to
If ascB(MidB(stampi+))=jpg(i) then return=true else return=false
next

case "gif"
stamp=fstreamread()
for i= to
If ascB(MidB(stampi+))=gif(i) then return=true else return=false
next
case "png"
stamp=fstreamread()
for i= to
If ascB(MidB(stampi+))=png(i) then return=true else return=false
next
case "bmp"
stamp=fstreamread()
for i= to
If ascB(MidB(stampi+))=bmp(i) then return=true else return=false
next
End select

fstreamClose
Set fseteam=nothing
If errnumber<> then return = false
else
return = true
End If
IsImgFile = return
End function
*******************************************************
作 用: 上传文件扩展名检测
函数名: CheckFileExt
参 数: sFileExt 上传文件夹的后缀
strExt 允许或禁止上传文件夹的后缀多个以"|"分隔
blnAllow 是允许还是禁止上传 strExt 中指定的后缀
返回值: 合法文件返回 True 否则返回False
*******************************************************
Function CheckFileExt(sFileExtstrExtblnAllow)
dim arrExtreturn
= 禁止上传的文件列表
strExt = "EXE|JS|BAT|HTML|HTM|COM|ASP|ASA|DLL|php|jsp|CGI"
sFileExt = UCase(sFileExt)
strExt = UCase(strExt)
arrExt = split(strExt"|")
If blnAllow=true then 只允许上传指定的文件
return = false
for i= to UBound(arrExt)
If sFileExt=arrExt(i) then return=true
next
responsewrite "Ext: "&sFileExt & " return: " & return & " "
else 禁止上传指定的文件
return = true
for i= to UBound(arrExt)
If sFileExt=arrExt(i) then return=false
next
End If
CheckFileExt = return
End Function
*******************************************************
作 用: 格式化显示文件大小
FileSize: 文件大小
*******************************************************
Function FormatSize(FileSize)
If FileSize< then FormatSize = FileSize & " Byte"
If FileSize/ < And FileSize/ > then
FileSize = FileSize/
FormatSize=round(FileSize*)/ & " KB"
Elseif FileSize/(*) > Then
FileSize = FileSize/(*)
FormatSize = round(FileSize*)/ & " MB"
End If
End function
*******************************************************
作用下载文件
函数名 DownFile(FileName)
FileName
*******************************************************
Sub DownFile(FileName)
fname = serverMapPath(fname)
filename=split(fname"")

Set objAdoStream=ServercreateObject("ADODBStream")
objAdoStreamType=
objAdoStreamopen()
objAdoStreamLoadFromFile(fname)
strchar=objAdoStreamRead()
fsize=objAdoStreamsize
objAdoStreamClose()
Set objAdoStream=nothing

ResponseAddHeader "contenttype""application/xmsdownload"
responseAddHeader "ContentDisposition""attachment;filename=" & filename(ubound(filename))
ResponseAddHeader "contentlength" fsize

ResponseBinaryWrite(strchar)
ResponseFlush()
End Sub
====================================================================================================
读取INI文件
Function ReadIni(FilePath_NameMysessionMyItem)
Dim MyString MyArraystr_tempsesstion_temp
MyString=LoadFile(FilePath_Name)
Arr=split(MyStringchr())
For I = to UBound(Arr)
Str_temp= Arr(I)
Str_temp=Replace(Trim(Str_temp)chr()"")
If Trim(Str_temp)<>"" and InStr(Trim(Str_temp)";")<> Then
If InStr(Trim(Str_temp)"[")<InStr(Trim(Str_temp)"]") Then
sesstion_temp=Trim(Str_temp)
sesstion_temp=Replace(Trim(sesstion_temp)"[""")
sesstion_temp=Replace(Trim(sesstion_temp)"]""")
Else
MyArray = Split(Trim(Str_temp) "=")
If Trim(MyArray())=MyItem and sesstion_temp=MySession then
ReadIni= Trim(MyArray())
Exit Function
End if
End If
End if
Next
ReadIni=""
End Function
写入INI文件
Function WriteIni(FilePath_NameMySessionMyItemMyValue)
Dim MyString MyArraystr_tempsesstion_tempsesstion_tempRstr
IsDo=false
IsHave=false
MyString=LoadFile(FilePath_Name)
Arr=split(MyStringchr())
For I = to UBound(Arr)
Str_temp= Arr(I)
Str_temp=Replace(Trim(Str_temp)chr()"")
if not IsDo then
If Trim(Str_temp)<>"" and InStr(Trim(Str_temp)";")<> Then
If InStr(Trim(Str_temp)"[")<InStr(Trim(Str_temp)"]") Then
sesstion_temp=Trim(Str_temp)
sesstion_temp=Replace(Trim(sesstion_temp)"[""")
sesstion_temp=Replace(Trim(sesstion_temp)"]""")
if sesstion_temp<>sesstion_temp and IsHave then
Str_temp=MyItem&"="&MyValue&VbCrLf&Str_temp
IsDo=true
end if
sesstion_temp=sesstion_temp
if sesstion_temp=MySession then IsHave=true
Else
MyArray = Split(Trim(Str_temp) "=")
If Trim(MyArray())=MyItem and sesstion_temp=MySession then
Str_temp= MyItem&"="&MyValue
IsDo=true
End if
End If
End if
End if
if(I<>UBound(Arr)) then
if Str_temp<>"" then Rstr=Rstr&Str_temp&VbCrLf
else
if Str_temp<>"" then Rstr=Rstr&Str_temp
end if
Next
if IsHave and IsDo=false then Rstr=Rstr&VbCrLf&MyItem&"="&MyValue
if IsHave=false and IsDo=false then Rstr=Rstr&VbCrLf&"["&MySession&"]"&VbCrLf&MyItem&"="&MyValue
call SaveToFile(RstrFilePath_Name)
End Function
======================================================================================================
Function GetRanNum()
****************************************
函数名GetRanNum
作 用输出带日期格式的随机数
参 数
返回值如GetRanNum()即输出随机数
关联函数FormatIntNumber
****************************************
GetRanNum = ""
GetRanNum = GetRanNum&FormatIntNumber(year(now))
GetRanNum = GetRanNum&FormatIntNumber(month(now))
GetRanNum = GetRanNum&FormatIntNumber(day(now))
GetRanNum = GetRanNum&FormatIntNumber(hour(now))
GetRanNum = GetRanNum&FormatIntNumber(minute(now))
GetRanNum = GetRanNum&FormatIntNumber(second(now))
randomize
ranNum=int((*rnd)+)
GetRanNum = GetRanNum&ranNum
End Function

Function FormatIntNumber(ExPRessionDigit)
****************************************
函数名FormatIntNumber
作 用输出Digit位左边带整数
参 数Expression 要格式化整数
参 数Digit 要格式化位数
返回值如FormatIntNumber()整数被格式化为
关联函数
****************************************
While Len(Expression) < Digit
Expression = ""&Expression
wend
FormatIntNumber = Expression
End Function
%>

               

上一篇:ASP获取地址栏URL地址方法

下一篇:ASP中Replace如何替换不区分大小写