您现在的位置是:网站首页> 编程资料编程资料
FSO操作文件系统_数据库相关_
2023-05-25
242人已围观
简介 FSO操作文件系统_数据库相关_
实现功能:
文件(夹)目录列表 提供了查阅目录下面的文件和文件夹
文件 写,创,删 提供了编辑,删除文件(文件夹)的操作
创建文件夹/文件 针对创建文件夹(文件)而设置.
上传文件 您可以模拟FTP上传,文件大小,类型不受限制.
有兴趣的自己体验,出现任何问题我均不承担任何后果,在此说,我没多少时间上网,经常也顾不过来,是看到最近经常有人问这方面的问题,就发上来,希望有所帮助。
upfso.asp //控制上传的文件
复制代码 代码如下:
<%'On Error Resume Next%>
<%
Server.ScriptTimeOut = 999
'up_filetype="RAR,ZIP,SWF,JPG,PNG,GIF,DOC,TXT,CHM,PDF,ACE,JPG,MP3,WMA,WMV,bmp"
IF Request.QueryString("yes")="upload" Then
path=Trim(request("path"))
'response.write(path&"---")
'response.End
Dim FSO,FSOIsOK,F_FileName,mode
F_FileName=Trim(request("nn"))
mode =killint(Trim(request("mode")),0,0,2)
FSOIsOK=1
Set FSO=Server.CreateObject("Scripting.FileSystemObject")
If Err<>0 Then
Err.Clear
FSOIsOK=0
End If
Dim D_Name,F_Name
If FSOIsOK=1 Then
If InStr(1,path,":\")=0 Then
path=Replace(Lcase(path),"\","/")
path = server.mappath(path)
path=Replace(path&"/","//","/")
Else
path=Replace(Lcase(path),"/","\")
path=Replace(path&"\","\\","\")
End If
if not fso.folderexists(path) Then
response.write "基本路径查找失败,返回"
response.End
End If
End If
Set FSO=Nothing
Dim FileUP
Set FileUP=New Upload_File
FileUP.GetDate(-1)
Dim F_FileType, F_File
Set F_File=FileUP.File("File")
If Len(F_FileName)<2 Then F_FileName = F_File.FileName
If Len(F_FileName)<2 Then
response.write("空文件,请返回")
response.End
End If
'F_FileType = Ucase(F_File.FileExt)
'IF F_File.FileSize > 90000 Then
' Response.Write("大小超过限制")
'exit sub
IF IsvalidFileName(F_FileName) = False Then
Response.Write("名称有误")
Else
Dim FileIsExists
Set FSO=Server.CreateObject("Scripting.FileSystemObject")
FileIsExists=FSO.FileExists(path&F_FileName)
If FileIsExists=True And mode<>1 Then
fso.deletefile(path&F_FileName)
Response.Write("文件已经存在,已经被删除;")
F_File.SaveToFile path&F_FileName
Response.Write("点击这里继续上传:"&path&F_FileName&"")
ElseIf FileIsExists=True And mode=1 Then
Response.Write("文件已经存在,您选择了不覆盖")
Else
F_File.SaveToFile path&F_FileName
Response.Write("点击这里继续上传:"&path&F_FileName&"")
End If
End IF
Set F_File=Nothing
Set FileUP=Nothing
Else
Dim path,nn,mmode
nn=Trim(request("nn"))
mmode=Trim(request("mode"))
path=Replace(request("path"),"//","/")
If path="" Then path="../newup/"
Response.Write("")
End IF
'效验名称
Function IsvalidFileName(File_Name)
IsvalidFileName = False
Dim re,reStr
Set re=new RegExp
re.IgnoreCase =True
re.Global=True
re.Pattern="[^_\.a-zA-Z\d]"
reStr=re.Replace(File_Name,"")
If File_Name = reStr Then IsvalidFileName=True
Set re=Nothing
End Function
%>
upload.asp // 上传类
复制代码 代码如下:
<%
Dim oUpFileStream
Class Upload_File
Dim Form,File,Err
Private Sub Class_Initialize
Err=-1
End Sub
Private Sub Class_Terminate
'Clear Variables & Objects
If Err < 0 Then
oUpFileStream.Close
Form.RemoveAll
File.RemoveAll
Set Form=Nothing
Set File=Nothing
Set oUpFileStream =Nothing
End If
End Sub
Public Sub GetDate(RetSize)
'Define Variables
Dim RequestBinDate,sStart,bCrLf,sInfo,iInfoStart,iInfoEnd,tStream,iStart,oFileInfo
Dim iFileSize,sFilePath,sFileType,sFormvalue,sFileName
Dim iFindStart,iFindEnd
Dim iFormStart,iFormEnd,sFormName
If Request.TotalBytes < 1 Then
Err=1
Exit Sub
End If
If RetSize > 0 Then
If Request.TotalBytes > RetSize Then
Err=2
Exit Sub
End If
End If
Set Form = Server.CreateObject("Scripting.Dictionary")
Form.CompareMode = 1
Set File = Server.CreateObject("Scripting.Dictionary")
File.CompareMode = 1
Set tStream = Server.CreateObject("Adodb.Stream")
Set oUpFileStream = Server.CreateObject("Adodb.Stream")
oUpFileStream.Type = 1
oUpFileStream.Mode = 3
oUpFileStream.Open
oUpFileStream.Write Request.BinaryRead(Request.TotalBytes)
oUpFileStream.Position=0
RequestBinDate = oUpFileStream.Read
iFormEnd = oUpFileStream.Size
bCrLf = chrB(13) & chrB(10)
'Get Seperators
sStart = MidB(RequestBinDate,1, InStrB(1,RequestBinDate,bCrLf)-1)
iStart = LenB (sStart)
iFormStart = iStart+2
'Split Items
Do
iInfoEnd = InStrB(iFormStart,RequestBinDate,bCrLf & bCrLf)+3
tStream.Type = 1
tStream.Mode = 3
tStream.Open
oUpFileStream.Position = iFormStart
oUpFileStream.CopyTo tStream,iInfoEnd-iFormStart
tStream.Position = 0
tStream.Type = 2
tStream.Charset = "UTF-8"
sInfo = tStream.ReadText
'Get form item name
iFormStart = InStrB(iInfoEnd,RequestBinDate,sStart)-1
iFindStart = InStr(22,sInfo,"name=""",1)+6
iFindEnd = InStr(iFindStart,sInfo,"""",1)
sFormName = Mid (sinfo,iFindStart,iFindEnd-iFindStart)
'If it's a file
If InStr (45,sInfo,"filename=""",1) > 0 Then
Set oFileInfo= new FileInfo
'Get File attributes
iFindStart = InStr(iFindEnd,sInfo,"filename=""",1)+10
iFindEnd = InStr(iFindStart,sInfo,"""",1)
sFileName = Mid (sinfo,iFindStart,iFindEnd-iFindStart)
oFileInfo.FileName = Mid (sFileName,InStrRev (sFileName, "\")+1)
oFileInfo.FilePath = Left (sFileName,InStrRev (sFileName, "\"))
oFileInfo.FileExt = Mid (sFileName,InStrRev (sFileName, ".")+1)
iFindStart = InStr(iFindEnd,sInfo,"Content-Type: ",1)+14
iFindEnd = InStr(iFindStart,sInfo,vbCr)
oFileInfo.FileType = Mid (sinfo,iFindStart,iFindEnd-iFindStart)
oFileInfo.FileStart = iInfoEnd
oFileInfo.FileSize = iFormStart -iInfoEnd -2
oFileInfo.FormName = sFormName
file.add sFormName,oFileInfo
Else
'If it's form item
tStream.Close
tStream.Type = 1
tStream.Mode = 3
tStream.Open
oUpFileStream.Position = iInfoEnd
oUpFileStream.CopyTo tStream,iFormStart-iInfoEnd-2
tStream.Position = 0
tStream.Type = 2
tStream.Charset = "UTF-8"
sFormvalue = tStream.ReadText
If Form.Exists (sFormName) Then
Form (sFormName) = Form (sFormName) & ", " & sFormValue
Else
Form.Add sFormName,sFormvalue
End If
End If
tStream.Close
iFormStart = iFormStart+iStart+2
'Exit at end of file
Loop Until (iFormStart+2) = iFormEnd
RequestBinDate=""
Set tStream = Nothing
End Sub
End Class
'Get File Info
Class FileInfo
Dim FormName,FileName,FilePath,FileSize,FileType,FileStart,FileExt
Private Sub Class_Initialize
FileName = ""
FilePath = ""
FileSize = 0
FileStart= 0
点击排行
本栏推荐
