熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

Asp文件操作函數集

2013-11-13 10:42:06  來源: .NET編程 

  <% ===============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 fstreamfileExtstamp
得到文件後綴並轉化為小寫 
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 
%> 


From:http://tw.wingwit.com/Article/program/net/201311/14329.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.