Im Folgenden finden Sie ein detailliertes Tutorial zum Betrieb des FSO -Dateisystems, das der Editor mit Ihnen geteilt hat. Interessierte Freunde, lasst uns mit dem Herausgeber erfahren!
Funktionen implementieren:
Die Liste der Dateiverzeichnis (Ordner) enthält die Suche nach Dateien und Ordnern unter dem Verzeichnis.
Das Schreiben, Erstellen und Löschen von Dateien bieten den Betrieb von Bearbeiten und Löschen von Dateien (Ordner)
Das Erstellen von Ordnern/Dateien wird für das Erstellen von Ordnern (Dateien) eingestellt.
Hochladen von Dateien Sie können FTP -Uploads mit unbegrenzter Dateigröße und -Typ simulieren.
Wenn Sie interessiert sind, werden Sie keine Konsequenzen haben, wenn Sie Probleme haben. Hier sage ich, dass ich nicht viel Zeit habe, um im Internet zu surfen, und mich oft nicht darum kümmern. Ich habe gesehen, dass die Leute diese Frage kürzlich oft stellen, also habe ich sie gepostet und gehofft, dass es hilfreich wäre.
upfSO.asp // Hochgeladene Dateien steuern
Die Codekopie lautet wie folgt:
@Importurl ("admin.css");
Server.ScriptTimeout = 999
'Up_Filetype = "RAR, ZIP, SWF, JPG, PNG, GIF, DOC, TXT, CHM, PDF, ACE, JPG, MP3, WMA, WMV, BMP"
IFREQUEST.queryString ("Ja") = "Upload" dann
path = trim (request ("path"))
'response.write (Path & "---")
'response.end
Dimfso, Fsoisok, F_FileName, Modus
F_filename = trim (request ("nn"))
Modus = Killint (Trim (Request ("Modus"), 0,0,2)
Fsoisok = 1
Setfso = server.createObject ("scripting.filesystemObject")
ISTERR0Then
Err.clear
Fsoisok = 0
Endif
Dimd_name, f_name
Iffsoisok = 1Then
IfInstr (1, Pfad ":/") = 0Then
Pfad = Ersetzen (Lase (Pfad), "/", "/")
path = server.mappath (Pfad)
Path = ersetzen (Pfad & "/", "//", "/")
Anders
Pfad = Ersetzen (Lase (Pfad), "/", "/")
Path = ersetzen (Pfad & "/", "//", "/")
Endif
ifnotfSo.FodereRexists (Pfad) dann
response.write "grundlegende Pfadsuche fehlgeschlagen, zurückkehren" = '#000080'>
Antwort.end
Endif
Endif
Setfso = nichts
Dimfileup
SetFileUp = newUpload_file
FileUp.getDate (-1)
Dimf_filetype, f_file
Setf_file = fileUp.file ("Datei")
Iflen (f_filename)
Iflen (f_filename)
response.write ("leere Datei, bitte zurück")) = '#000080'> = 'JavaScript: history.go (-1);'>
Antwort.end
Endif
'F_filetype = uCase (f_file.Fileext)
'IFF_FILE.FILESIZE> 90000Then
'Response.write ("Größe überschreitet die Grenze") = 'JavaScript: history.go (-1);'>
'exitsub
IfisvalidFileName (f_filename) = falsethen
Antwort.Write ("falscher Name") = '#000080'> = 'JavaScript: history.go (-1);'>
Anders
DimFileisexisten
Setfso = server.createObject ("scripting.filesystemObject")
Dateisexisten = fso.fileExists (Path & F_FileName)
IFFileisexists = TrueandMode1then
fso.deleteFile (Pfad & f_filename)
Response.write ("Die Datei ist bereits existiert, wurde gelöscht;") = '#000080'>
F_file.savetofilepath & f_filename
Response.write (" Klicken Sie hier, um weiter hochzuladen:" & path & f_filename & " = '#000080'> ")
SonstEiffileisexists = TrueandMode = 1Then
Response.write ("Die Datei existiert bereits, Sie haben sich entschieden, nicht zu überschreiben") = '#000080'>
Anders
F_file.savetofilepath & f_filename
Response.write (" Klicken Sie hier, um weiter hochzuladen:" & path & f_filename & " = '#000080'> ")
Endif
Endif
Setf_file = nichts
SetFileUp = nichts
Anders
Dimpath, NN, MMODE
nn = trim (request ("nn"))
mmode = trim (request ("modus"))
Path = Ersatz (Request ("Pfad"), "//", "/")
Ifpath = "" thenpath = "../ neuup/"
Antwort.Write (" ")
Endif
'Erlebnisname
FunctionIsValidFileName (Datei_Name)
IsvalidFileName = false
Dimre, Rückspann
Setre = newRegexp
re.Innorecase = true
re.global = true
re.Pattern = "[^_/. a-za-z/d]"
rest = re.Replace (Datei_Name, "")
IFFILE_NAME = resthhenisvalidFileName = true
Setre = nichts
Endfunktion
%>
Upload.asp // Klasse hochladen
Die Codekopie lautet wie folgt:
DimoupFilestream
ClassUpload_file
Dimform, Datei, err
PrivateSubclass_initialize
ERR = -1
Ende
PrivateSubclass_terate
'Clearvariables & Objekte
ISTERR
OUPFILESTREAM.CLOSE
Form.Removeall
Datei.removeall
Setform = nichts
Setfile = nichts
SetOUPFilESTREAM = nichts
Endif
Ende
PublicsubgetDate (RetSize)
'DefineVariables
Dimrequestbindate, Sstart, Bcrlf, Sinfo, Iinfostart, Iinfoend, Tstream, Istart, Ofileinfo
DimifileSize, Sfilepath, Sfiletyp, SFORMVALUE, SFILENAME
DimifindStart, ifindend
DimiformStart, ARTORMEND, SFORMNAME
Ifrequest.totalBytes
Err = 1
Exitsub
Endif
IfretSize> 0Then
IFREQUEST.TOTALBYTES> RETSIZETHEN
ERR = 2
Exitsub
Endif
Endif
Setform = server.createObject ("scripting.Dictionary")
Form.comParemode = 1
SetFile = server.createObject ("scripting.Dictionary")
Datei.comParemode = 1
Settstream = server.createObject ("adodb.stream")
SetOUPFilESTREAM = server.createObject ("adodb.stream")
OUPFILESTREAM.TYPE = 1
OUPFILESTREAM.MODE = 3
OUPFILESTREAM.OPEN
OUPFILESTREAM.WriteRequest.BinaryRead (Request.TotalBytes)
OUPFILESTREAM.Position = 0
RequestBindate = OUPFILESTREAM.READ
itormend = OUPFILESTREAM.SIZE
BCRLF = CHRB (13) & CHRB (10)
'Getsperatoren
Sstart = Midb (RequestBindate, 1, Instrb (1, RequestBindate, Bcrlf) -1)
istart = lenb (sstart)
IFOrMStart = iStart+2
'Splitsems
Tun
IInfoend = Instrb (AformStart, RequestBindate, BCRLF & BCRLF) +3
tstream.type = 1
tstream.mode = 3
tstream.open
OUPFILESTREAM.Position = iFormStart
OUPFILESTREAM.COPYTOTTOTTREAM, IINFOEND-SIFFART
tstream.position = 0
tstream.type = 2
tstream.charset = "utf-8"
SINFO = TSTREAM.READTEXT
'GetFormitemname
itormStart = instrb (iinfoend, requestBindate, sstart) -1
ifindStart = instr (22, sinfo, "name =" "", 1) +6
ifindend = instr (ifindStart, sinfo, "" ", 1)
SFORMNAME = MID (SINFO, IFINDSTART, IFINDEND-IFINDSTART)
'Ifitsafile
IfInstr (45, Sinfo, "Dateiname =" "", 1)> 0Then
SetoFileInfo = newfileInfo
'GetFileTtributes
ifindStart = instr (ifindend, sinfo, "Dateiname =" "", 1) +10
ifindend = instr (ifindStart, sinfo, "" ", 1)
SFILENAME = MID (SINFO, IFINDSTART, IFINDEND-IFINDSTART)
Ofileinfo.FileName = Mid (SFILENAME, Instrrev (Sfilename, "/")+1)
Ofileinfo.filepath = links (SFILENAME, INSTREV (SFILENAME ",/"))
OFILEINFO.FILEEXT = MID (SFILENAME, INSTREVEL (SFILENAME, ".")+1)
ifindStart = instr (ifindend, Sinfo, "Inhaltstyp:", 1) +14
ifindend = instr (ifindStart, sinfo, vbcr)
Ofileinfo.filetype = MID (SINFO, IFINDSTART, IFINDEND-IFINDSTART)
Ofileinfo.Filestart = iinfoend
OFILEINFO.FILESIZE = AFORMSTART-IINFOEND-2
OFILEINFO.FORMNAME = SFORMNAME
Datei.AddsformName, Ofileinfo
Anders
'Ifit'SformItem
tstream.close
tstream.type = 1
tstream.mode = 3
tstream.open
OUPFILESTREAM.Position = iinfoend
OUPFILESTREAM.COPYTOTTOTREAM, AFORMSTART-IINFOEND-2
tstream.position = 0
tstream.type = 2
tstream.charset = "utf-8"
SFORMVALUE = TSTREAM.READTEXT
Ifform.Exists (SFORMNAME) dann
Form (SFORMNAME) = Form (SFORMNAME) & "," & SFORMVALUE
Anders
Form.addsformName, SformValue
Endif
Endif
tstream.close
itormStart = itormStart+istart+2
'Exitatendoffile
Loopuntil (AFOrMStart+2) = iFormend
RequestBindate = ""
Settstream = nichts
Ende
Endschicht
'GetFileInfo
ClassFileInfo
DimformName, FileName, Filepath, FileSize, Filetype, FilESTART, FileEXT
PrivateSubclass_initialize
Dateiname = ""
Filepath = ""
Filesize = 0
Filestart = 0
Formname = ""
Filetype = ""
Dateiext = ""
Ende
'SaveFilemethod
PublicFunctionsAvetofile (FullPath)
DimofileStream, Fehlerchar, i
OnErrorresumeNext
SetOFilEstream = CreateObject ("adodb.stream")
OFILESTREAM.TYPE = 1
OFILESTREAM.MODE = 3
OFILESTREAM.OPEN
OUPFILESTREAM.Position = FilESTART
OUPFILESTREAM.COPYTOOFILESTREAM, Filesize
OFILESTREAM.SAVETOFILEFEFEFELPATH, 2
OFILESTREAM.CLOSE
SetoFilEstream = nichts
Endfunktion
'GetFilecontent
PublicFunctionGetDate
OUPFILESTREAM.Position = FilESTART
GetDate = OUPFILESTREAM.READ (Dateigröße)
Endfunktion
Endschicht
%>
Kernfunktionen
Die Codekopie lautet wie folgt:
DimteinstalledObjects (17)
thinstalledObjects (0) = "mswc.adrotator"
thinstalledObjects (1) = "mswc.browsertype"
thinstalledObjects (2) = "mswc.nextlink"
thinstalledObjects (3) = "mswc.tools"
thinstalledObjects (4) = "mswc.status"
thinstalledObjects (5) = "mswc.counter" "
thinstalledObjects (6) = "iisSample.Contentrotator"
thinstalledObjects (7) = "iisSample.PageCounter"
thinstalledObjects (8) = "MSWC.PermissionChecker"
thinstalledObjects (9) = "scripting.filesystemObject" "
thinstalledObjects (10) = "adodb.Connection"
thinstalledObjects (11) = "SoftArtisans.FileUp"
thinstalledObjects (12) = "Softartisans.filemanager"
thinstalledObjects (13) = "jmail.smtpmail"
thinstalledObjects (14) = "CDONTs.Newmail"
thinstalledObjects (15) = "Persits.MailSender"
theinstalledObjects (16) = "lyfUpload.UploadFile"
thinstalledObjects (17) = "PERSITS.Upload.1"
Dimfso
Ifisobjinstalled (theInstalledObjects (9)) dann
Setfso = server.createObject ("scripting.filesystemObject")
Endif
Functionisobjinstalled (StrclassString)
OnErrorresumeNext
Isobjinstalled = false
Err = 0
DimXTestObj
SetxtestObj = server.createObject (strclassString)
If0 = errthenisobjinstalled = true
SetxtestObj = nichts
Err = 0
Endfunktion
'Überprüfen Sie die Komponentenversion
PublicFunctiongetver (classstr)
OnErrorresumeNext
DimXTestObj
SetxtestObj = server.createObject (classstr)
Isterrthen
Getver = ""
anders
getver = xtestObj.version
Endif
SetxtestObj = nichts
Endfunktion
'Erlebnisname
FunctionIsValidFileName (Datei_Name)
IsvalidFileName = false
Dimre, Rückspann
Setre = newRegexp
re.Innorecase = true
re.global = true
re.Pattern = "[^_/. a-za-z/d]"
rest = re.Replace (Datei_Name, "")
IFFILE_NAME = resthhenisvalidFileName = true
Setre = nichts
Endfunktion
'Datei schreiben
FunctionWriteto (XMLFloder, XMLFile, Inhalt, Modus)
writeTo = false
Ifnotisobjinstalled (thinstalledObjects (9))
Modus = Killint (Modus, 0,0,2)
xmlfloder = server.mappath (xmlfloder)
Setfso = server.createObject ("scripting.filesystemObject")
ifnotfSo.FORDEREXISTS (XMLFLODER) dann
fso.createfolder (xmlfloder)
Endif
xmlfile = ersetzen (xmlfloder & "/", "//", "/") & xmlfile
'response.write (Warn_red (xmlfile))
Dimfsoxml
IFFFSO.FILEExists (xmlFile) undMode = 1Then 'schreibt nicht
Ausgangsfunktion
elseifffso.fileExists (xmlfile) undMode = 2Then'rewrite
SetfSoxml = fso.opentextfile (xmlfile, 2)
fsoxml.writeLine (Inhalt)
fsoxml.close
writeTo = true
Elseifffso.fileExists (xmlFile) undMode = 8Then'add
SetfSoxml = fso.opentextfile (xmlfile, 8)
fsoxml.writeLine (Inhalt)
fsoxml.close
writeTo = true
Elseifffso.fileExists (xmlFile) dann
SetfSoxml = fso.opentextfile (xmlfile, 2) 'neu schreiben
fsoxml.writeLine (Inhalt)
fsoxml.close
writeTo = true
Anders
SetfSoxml = fso.createTextFile (xmlfile) 'create
fsoxml.writeLine (Inhalt)
fsoxml.close
writeTo = true
Endif
Endfunktion
'Löschen Sie die Datei
FunctionDelaspfile (x)
OnErrorresumeNext
delaspFile = false
IfnotFileExitornot (x) dann
Ausgangsfunktion
Anders
fso.deleteFileServer.Mappath (x)
delaspFile = true
Endif
Endfunktion
'Die Datei existiert
FunktionsFileExitornot (Datei)
OnErrorresumeNext
Dimf_re_file
f_re_file = true
Ifnotfso.fileExists (server.mappath (Datei)) thenf_re_file = false
Ifr0Thenf_re_file = false
FileExitornot = f_re_file
Endfunktion
'Fehlerunterdrückung, Druckfehler
FunctionShow_err (err)
OnErrorresumeNext
ISTERR.NUMBER0Then
Antwort.Clear
Dimerr_mess
Err_mess = " Fehler aufgetreten:
Fehlernummer: "& err.number &"
Fehlermeldung: "& err.description &"
Fehlerdatei: "& err.source &"
Fehlerzeile: "& err.line &" (nicht unterstützt)
"& ähm
Antwort.Write (Err_mess)
Endif
Endfunktion
'warnen:
FunctionWarn_red (Mess)
Warn_red = " Track:" & Mess & "
" = rot>
Endfunktion
'FSO -Dateiverzeichnis
FunktionshowallFile (Pfad)
'OnErrorresumenext
Path = ersetzen (Pfad, "//", "/")
setfso = createObject ("scripting.filesystemObject")
DimUploadPath, UploadFolder, ObjsubFolders, Allfiles, FileItem, Objsubfolker,
sFileName
IfInstr (1, Pfad ":/") = 0Then
Pfad = ersetzen (Pfad ",/", "/")
UploadPath = Server.Mappath (Pfad)
Anders
Pfad = ersetzen (Pfad ",/", "/")
UploadPath = Pfad
Endif
Antwort.Write (Warn_red (UploadPath))
ifnotfSo.FORDEREXISTS (UploadPath) dann
response.writewarn_red ("Pfadhookup fehlgeschlagen")
Ausgangsfunktion
Endif
SetUploadFolder = fso.getFolder (UploadPath)
IfUploadFolder.isrootfolter
response.write (" Root Directory
"))
Anders
response.write (" Elternverzeichnis:
"& Uploadfolker.ParentFolder &"
"))
Endif
response.write (" Verzeichnisgröße:" & int (UploadFolder.Size/1024) & "KB
"))
setObjsubFolders = uploadFolder.SubFolders
DIMFSO_MES
fso_mes = "
foreachobjsubfolderinobjsubfolders
fso_mes = fso_mes & "
nächste
setAllFiles = uploadFolder.files
foreachFileTeminallFiles
fso_mes = fso_mes & "
Nächste
fso_mes = fso_mes & "
"
response.write (fso_mes)
Antwort.writedEltext (UploadPath, 1)
Endfunktion
'Dateieigenschaften
FunktionsFilePro (Name)
name = ersetzen (name, "//", "/")
Dunkel welche Datei
IfInstr (1, Name ":/") = 0Then
name = ersetzen (name, "/", "/")
welche file = server.mappath (Name)
Anders
name = ersetzen (name, "/", "/")
Welche Datei = Name
Endif
Setfso = createObject ("scripting.filesystemObject")
Ifnotfso.fileExists (welche Datei) dann
response.write (Warn_red ("Die Datei existiert nicht oder hat keine Zugriffsgenehmigung")))
Ausgangsfunktion
Endif
Dimf2, s_mess
Setf2 = fso.getFile (welche Datei)
s_mess = " übergeordnetes Verzeichnis:" & f2.ParentFolder &
"
"
s_mess = s_mess & "Dateiname:" & f2.name & "
"
S_MESS = S_MESS & "Datei Kurzpfadenname:" & f2.shortPath & "
"
s_mess = s_mess & "Datei physikalische Adresse:" & f2.Path & "
"
s_mess = s_mess & "Dateiattribut:" & f2.attributes & "
"
s_mess = s_mess & "Dateigröße:" & f2.size & "
"
s_mess = s_mess & "Dateityp:" & f2.Type & "
"
S_MESS = S_MESS & "Dateierstellung Zeit:" & f2.datescreated & "
"
s_mess = s_mess & "Neueste Zugriffszeit:" & f2.Datelastaccess & "
"
S_MESS = S_MESS & "Neueste modifizierte Zeit:" & f2.Datelastmodified & "
"
response.write (s_mess)
Ifkillint (trimm (request ("type"), 0,0,2) 0Then
ShowText (welche Datei)
Endif
response.writedEltext (welche Datei, 0)
Endfunktion
''
SubshowText (Dateien)
DiMistr, Adostxt, Riemen
setAdostExt = server.createObject ("adodb.stream")
adostext.mode = 3
adostext.type = 2
adostext.charset = "gb2312"
'adostext.charset = "Big5"
adostext.open
IfInstr (1, Dateien, ":/") = 0Then
Dateien = Ersetzen (Dateien, "/", "/")
Dateien = Server.Mappath (Dateien)
Anders
Dateien = Ersetzen (Dateien, "/", "/")
Dateien = Dateien
Endif
AdostExt.loadfromFile (Dateien)
strasp = adostExt.readText ()
adostext.close
setAdostxt = nichts%>
FunktionDeltext (Datei, Modus)
DIMDELTEXT_MESS
DELTEXT_MESS = ""
SelectCaseKillint (Modus, 0,0,2)
Case0:
DELTEXT_MESS = DELTEXT_MESS & "Dateioperation: Eigenschaften Mobile Kopie bearbeiten umbenennen . = rot> = rot>
Fall1:
DELTEXT_MESS = DELTEXT_MESS & "Ordner Vorgang: Listenerstellung der Erstellung des Verzeichnisses des Verzeichnisses von Listen -Dateien hochladen Datei Verschieben von Umbenennungen und Löschen " = rot>
Endauswahl
DELTEXT_MESS = DELTEXT_MESS & ""
deltext = deltext_mess
Endfunktion
Das obige ist ein detailliertes Tutorial zu FSO, das das Dateisystem betreibt. Ich glaube, Sie haben es gelernt. Für mehr verwandte Inhalte achten Sie weiterhin auf den Wuxin -Technologiekanal.