Vous trouverez ci-dessous un tutoriel détaillé sur l'exploitation du système de fichiers FSO que l'éditeur a partagé avec vous. Amis intéressés, apprenons-le avec l'éditeur!
Implémentation des fonctions:
La liste de répertoires de fichiers (dossier) fournit la recherche de fichiers et de dossiers sous le répertoire.
L'écriture, la création et la suppression de fichiers fournissent le fonctionnement de l'édition et de la suppression de fichiers (dossiers)
La création de dossiers / fichiers est défini pour créer des dossiers (fichiers).
Télécharger des fichiers Vous pouvez simuler les téléchargements FTP, avec la taille et le type illimitées du fichier.
Si vous êtes intéressé, vous n'aurez aucune conséquence si vous avez des problèmes. Ici, je dis que je n'ai pas beaucoup de temps pour surfer sur Internet et que souvent je ne peux pas m'en occuper. J'ai vu que les gens posent souvent cette question récemment, alors je l'ai posté, en espérant que ce serait utile.
upfso.asp // Contrôle des fichiers téléchargés
La copie de code est la suivante:
@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 ("Oui") = "téléchargement" puis
Path = Trim (demande ("chemin"))
'Response.Write (Path & "---")
'Response.end
Dimfso, fsoisok, f_filename, mode
F_filename = trim (request ("nn"))
MODE = KILLINT (TRIM (demande ("mode")), 0,0,2)
Fsoisok = 1
Setfso = server.createObject ("scripting.filesystemObject")
IFERR0TEN
Err.Clear
Fsoisok = 0
Endire
Dimd_name, f_name
Iffsoisok = 1Then
IFinstr (1, chemin, ": /") = 0THEN
chemin = remplacer (LCase (chemin), "/", "/")
path = server.mappath (path)
path = remplacer (path & "/", "//", "/")
Autre
chemin = remplacer (LCase (chemin), "/", "/")
path = remplacer (path & "/", "//", "/")
Endire
ifnotfso.folderexists (chemin) puis
Response.Write "La recherche de chemin de base a échoué, retour" = '# 000080'>
réponse.
Endire
Endire
Setfso = rien
Dimfile
SetFileUp = newupload_file
FileUp.getDate (-1)
Dimf_filetype, f_file
Setf_file = fileup.file ("fichier")
Iflen (f_filename)
Iflen (f_filename)
réponse.write ("fichier vide, veuillez retourner") = '# 000080'> = 'JavaScript: History.go (-1);'>
réponse.
Endire
'F_fileType = ucase (f_file.fileext)
'Iff_file.filesize> 90000Then
'Response.Write ("La taille dépasse la limite") = 'JavaScript: History.go (-1);'>
'
IfisValidFileName (f_filename) = falsethhen
Réponse.write ("nom incorrect") = '# 000080'> = 'JavaScript: History.go (-1);'>
Autre
Dimfileisexistes
Setfso = server.createObject ("scripting.filesystemObject")
FileiseXists = fso.fileExists (Path & f_filename)
Iffileisexists = trueandmode1then
fso.deletefile (path & f_filename)
Réponse.write ("Le fichier existe déjà, a été supprimé;") = '# 000080'>
F_file.savetofilepath & f_filename
Response.Write (" Cliquez ici pour continuer à télécharger:" & path & f_filename & " = '# 000080'> ")
Elseiffileisexists = trueandMode = 1Then
Réponse.write ("Le fichier existe déjà, vous avez choisi de ne pas écraser") = '# 000080'>
Autre
F_file.savetofilepath & f_filename
Response.Write (" Cliquez ici pour continuer à télécharger:" & path & f_filename & " = '# 000080'> ")
Endire
Endire
Setf_file = rien
SetFileUp = rien
Autre
DimPath, NN, MMODE
nn = trim (demande ("nn"))
MMODE = TRIM (demande ("mode"))
path = remplacer (request ("path"), "//", "/")
Ifpath = "" thenpath = "../ newup /"
Response.Write (" ")
Endire
'Nom d'expérience
FunctionIsValidFileName (file_name)
IsValidFileName = false
Dimre, retenue
SetRe = newRegexp
re.ignorecase = true
re.global = true
re.Pattern = "[^ _ /. A-ZA-Z / D]"
contrat = re.replace (file_name, "")
Iffile_name = contrtenisvalidfilename = true
Setdre = rien
Finition de fin
%>
upload.asp // Classe de téléchargement
La copie de code est la suivante:
Dimoupfilestream
Classupload_file
Dimform, fichier, err
PrivésubClass_Initialize
Err = -1
Fin
PrivésUbclass_termince
'Clearvariables et objets
Iferr
oupfilestream.close
Form.removeall
File.removeall
SetForm = rien
SetFile = rien
SetoupFileStream = rien
Endire
Fin
PublicsUbgetDate (re-size)
'Définir
DimRequestBindate, Sstart, Bcrlf, Sinfo, Iinfostart, Iinfoend, TSTRESTEAM, ISTART, OFILEINFO
Dimifilesize, sfilepath, sfiletype, sformvalue, sfilename
Dimifinindstart, ifIndend
DIMIFIOTSTART, IFORMEND, SOFFOR
Ifrequest.totalbytes
Err = 1
Otestub
Endire
IfRetsize> 0ment
IfRequest.TotalBytes> retraizethen
Err = 2
Otestub
Endire
Endire
SetForm = server.createObject ("scripting.dictionary")
Form.comparemode = 1
SetFile = server.createObject ("scripting.dictionary")
File.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
iformend = oupfilestream.size
bcrlf = chrb (13) & chrb (10)
'GetSeperators
sstart = midb (requestbindate, 1, instrb (1, requestbindate, bcrlf) -1)
istart = Lenb (sstart)
iformstart = istart + 2
'SplitItems
Faire
iinfoend = instrb (iformstart, requestbindate, bcrlf & bcrlf) +3
TSTREAM.TYPE = 1
tStream.Mode = 3
ttrever.open
oupfilestream.position = iformstart
oupfilestream.copyTotstream, iinfoend -iformstart
tStream.Position = 0
TSTREAM.TYPE = 2
tStream.Charset = "UTF-8"
sinfo = tStream.readText
'GetformItemname
iformstart = instrb (iinfoend, requestBindate, sstart) -1
ifIndStart = instr (22, sinfo, "name =" "", 1) +6
ifIndend = instr (ifIndStart, Sinfo, "" "", 1)
sformname = mid (sinfo, ifIndStart, ifIndend-Iffindstart)
'Ifit'safile
IFinstr (45, Sinfo, "filename =" "", 1)> 0ment
Setofileinfo = newfileinfo
'GetFileAttributes
ifindstart = instr (ifIndend, sinfo, "filename =" "", 1) +10
ifIndend = instr (ifIndStart, Sinfo, "" "", 1)
sFileName = mid (sinfo, ifindstart, ifIndend-ifindstart)
odiileInfo.filename = mid (sfilename, instrrev (sfilename, "/") + 1)
odiileInfo.FilePath = Left (SFileName, Instrev (SFileName, "/"))
odiileInfo.fileExt = mid (sFileName, instrrev (sfilename, ".") + 1)
ifIndStart = instr (ifIndend, Sinfo, "Content-Type:", 1) +14
ifIndend = instr (ifIndStart, Sinfo, vbcr)
odiileinfo.fileType = mid (Sinfo, ifindstart, ifIndend-ifinstart)
odiileinfo.fileStart = iinfoend
odiileinfo.filesize = iformstart-iinfoend-2
odiileinfo.formname = sformname
file.addsformname, odiileinfo
Autre
'Ifit'sformItem
ttrever.close
TSTREAM.TYPE = 1
tStream.Mode = 3
ttrever.open
oupfilestream.position = iinfoend
oupfilestream.copyTotstream, iformstart-iinfoend-2
tStream.Position = 0
TSTREAM.TYPE = 2
tStream.Charset = "UTF-8"
sformvalue = tStream.readText
Ifform.exists (sformname) puis
Form (sformname) = form (sformname) & "," & sformvalue
Autre
Form.addsformname, sformvalue
Endire
Endire
ttrever.close
iformstart = iformstart + istart + 2
'EXITATENDOFFILE
Loopuntil (iformstart + 2) = iformend
RequestBindate = ""
SetTStream = rien
Fin
Classe de fin
'Getfileinfo
ClassFileInfo
DimFormName, FileName, FilePath, FileSize, FileType, FileStart, Fileext
PrivésubClass_Initialize
Filename = ""
Filepath = ""
FileSize = 0
Filestart = 0
FormName = ""
FileType = ""
Fileext = ""
Fin
'SaveFileMethod
PublicFonctionsVetoFile (FullPath)
Dimofilestream, errorchar, i
Onerrorresumenext
SetoFileStream = createObject ("adodb.stream")
OFILESTREAM.TYPE = 1
ofilestream.mode = 3
opestream.open
oupfilestream.position = filestart
oupfilestream.copytoofilestream, filets
ofilestream.savetofilefullpath, 2
OFILESTREAM.CLOSE
Setofilestream = rien
Finition de fin
'GetFileContent
PublicfunctiongetDate
oupfilestream.position = filestart
GetDate = oupFileStream.read (FileSize)
Finition de fin
Classe de fin
%>
Fonctions de base
La copie de code est la suivante:
Dimtheinstalledobjects (17)
theinstalledObjects (0) = "mswc.adrotator"
theinstalledObjects (1) = "MSWC.BrowserType"
theinstalledObjects (2) = "mswc.nextLink"
theinstalledObjects (3) = "mswc.tools"
theinstalledObjects (4) = "mswc.status"
theinstalledObjects (5) = "MSWC.Counters"
theinstalledObjects (6) = "iissample.conentRtotor"
theinstalledObjects (7) = "iissample.pageCounter"
theinstalledObjects (8) = "MSWC.PermissionChecker"
theinstalledObjects (9) = "scripting.fileSystemObject"
theinstalledObjects (10) = "adodb.connection"
theinstalledObjects (11) = "softartisans.fileup"
theinstalledObjects (12) = "softartisans.filemanager"
theinstalledObjects (13) = "Jmail.smtpmail"
theInstalledObjects (14) = "cdons.newmail"
theinstalledObjects (15) = "persits.mailsender"
theinstalledObjects (16) = "lyFupload.uploadfile"
theinstalledObjects (17) = "persits.upload.1"
Dimfso
Ifisobjinstalled (theinstalledObjects (9)) puis
Setfso = server.createObject ("scripting.filesystemObject")
Endire
FunctionIsObJinstalled (StrClassString)
Onerrorresumenext
IsObjinstalled = false
Err = 0
Noctestobj
SetxTestObj = server.createObject (strClassString)
If0 = errtheNisObjinStalled = true
SetxTestObj = rien
Err = 0
Finition de fin
'Vérifiez la version des composants
PublicFunctionGetver (Classstr)
Onerrorresumenext
Noctestobj
SetxTestObj = server.createObject (classstr)
Idierrhen
getver = ""
autre
getver = xttestobj.version
endire
SetxTestObj = rien
Finition de fin
'Nom d'expérience
FunctionIsValidFileName (file_name)
IsValidFileName = false
Dimre, retenue
SetRe = newRegexp
re.ignorecase = true
re.global = true
re.Pattern = "[^ _ /. A-ZA-Z / D]"
contrat = re.replace (file_name, "")
Iffile_name = contrtenisvalidfilename = true
Setdre = rien
Finition de fin
'Rédaction de fichiers
FunctionwriteTo (xmlfloder, xmlfile, contenu, mode)
writeTo = false
Ifnotisobjinstalled (theinstalledObjects (9)) alorsxitfunction
MODE = KILLINT (MODE, 0,0,2)
xmlfloder = server.mappath (xmlfloder)
Setfso = server.createObject ("scripting.filesystemObject")
ifnotfso.folderexists (xmlfloder) puis
fso.createfolder (xmlfloder)
Endire
xmlFile = remplacer (xmlfloder & "/", "//", "/") & xmlfile
'Response.Write (warn_red (xmlfile))
Dimfsoxml
Ifffso.fileexists (xmlfile) et mode = 1Then 'n'écrit pas
Sortie
elseifffso.fileexists (xmlfile) andmode = 2Then'Rewrite
SetfSoxml = fso.OpenTExtFile (xmlfile, 2)
fsoxml.writeline (contenu)
fsoxml.close
writeTo = true
Elseifffso.fileexists (xmlfile) etMode = 8Then'add
SetfSoxml = fso.OpenTExtFile (xmlfile, 8)
fsoxml.writeline (contenu)
fsoxml.close
writeTo = true
Elseifffso.fileexists (xmlfile) puis
SetfSoxml = fso.OpentextFile (xmlfile, 2) 'Réécriture
fsoxml.writeline (contenu)
fsoxml.close
writeTo = true
Autre
SetfSoxml = fso.CreateTextFile (xmlfile) 'Créer
fsoxml.writeline (contenu)
fsoxml.close
writeTo = true
Endire
Finition de fin
'Supprimer le fichier
Functiondelaspfile (x)
Onerrorresumenext
delaspfile = false
IfnotfileExitornot (x) puis
Sortie
Autre
fso.deletefileServer.mappath (x)
delaspfile = true
Endire
Finition de fin
'Le fichier existe
FunctionfileExitornot (fichier)
Onerrorresumenext
Dimf_re_file
f_re_file = true
Ifnotfso.fileExists (server.mappath (fichier)) thenf_re_file = false
Iferr0Thenf_re_file = false
fileExitornot = f_re_file
Finition de fin
'Suppression des erreurs, erreur d'impression
FunctionShow_err (ERR)
Onerrorresumenext
IFERR.NUMBER0TEN
Réponse.
Dimerr_messs
err_mess = " l'erreur s'est produite:
Numéro d'erreur: "& err.number &"
Message d'erreur: "& err.description &"
Fichier d'erreur: "& err.source &"
Ligne d'erreur: "& err.line &" (non pris en charge)
"&se tromper
Response.Write (ERR_MESS)
Endire
Finition de fin
'avertir:
Functionwarn_red (mess)
warn_red = " Track:" & mess & "
" = rouge>
Finition de fin
'Répertoire de fichiers FSO
Fonctionshowallfile (chemin)
'Onerrorreumenext
path = remplacer (chemin, "//", "/")
setfso = createObject ("scripting.fileSystemObject")
DiMuPloadPath, uploadFolder, objSubfolders, AllFiles, FileItem, ObjSubFolder,
sfilename
IFinstr (1, chemin, ": /") = 0THEN
path = remplacer (chemin, "/", "/")
uploadPath = server.mappath (chemin)
Autre
path = remplacer (chemin, "/", "/")
uploadPath = Path
Endire
réponse.write (warn_red (uploadpath))
ifnotfso.folderexists (uploadpath) puis
réponse.writewarn_red ("La recherche de chemin a échoué")
Sortie
Endire
Setuploadfolder = fso.getfolder (uploadpath)
Ifuploadfolder.isrootfolderthen
Response.Write (" Répertoire racine
")
Autre
Response.Write (" Répertoire parent:
"& uploadfolder.parentfolder &"
")
Endire
Response.Write (" Taille du répertoire:" & int (uploadfolder.size / 1024) & "kb
")
setObjSubFolders = uploadFolder.Subfolders
Dimfso_mes
fso_mes = "
foreachobjsubfolderinobjsubfolders
fso_mes = fso_mes & "
suivant
setallFiles = uploadFolder.files
foreachfileiteminallfiles
fso_mes = fso_mes & "
Suivant
fso_mes = fso_mes & "
"
Response.Write (FSO_MES)
Response.WritedElText (UploadPath, 1)
Finition de fin
'Propriétés de fichiers
Functionfilepro (nom)
name = remplacer (nom, "//", "/")
Dim Whofile
IFinstr (1, nom, ": /") = 0THEN
name = remplacer (nom, "/", "/")
whatfile = server.mappath (nom)
Autre
name = remplacer (nom, "/", "/")
WhatFile = nom
Endire
Setfso = createObject ("scripting.fileSystemObject")
Ifnotfso.fileexists (quelfile) alors
réponse.write (warn_red ("le fichier n'existe pas ou n'a pas d'autorisation d'accès"))
Sortie
Endire
Dimf2, s_mess
Setf2 = fso.getfile (whatfile)
S_MESS = " Directoire parent:" & f2.parentfolder &
"
"
S_MESS = S_MESS & "Nom de fichier:" & f2.Name & "
"
S_MESS = S_MESS & "Nom du chemin court de fichier:" & f2.shortpath & "
"
S_MESS = S_MESS & "Adresse physique du fichier:" & f2.path & "
"
S_MESS = S_MESS & "Attribut de fichier:" & f2.Attributes & "
"
S_MESS = S_MESS & "Taille de fichier:" & f2.Size & "
"
S_MESS = S_MESS & "Type de fichier:" & f2.Type & "
"
S_MESS = S_MESS & "Temps de création de fichiers:" & f2.DateCreated & "
"
S_MESS = S_MESS & "Dernier temps d'accès:" & f2.datelastaccessed & "
"
S_MESS = S_MESS & "Dernier temps modifié:" & f2.datelastmodified & "
"
Response.Write (S_MESS)
Ifkilnt (trim (demande ("type")), 0,0,2) 0
showText (quelfile)
Endire
Response.WritedElText (WhoFile, 0)
Finition de fin
'
SubshowText (fichiers)
Dimist, adostext, sangle
setadostext = server.createObject ("adodb.stream")
adostext.mode = 3
adostext.type = 2
adostext.charset = "gb2312"
'adostext.charset = "big5"
adostext.open
IFinstr (1, fichiers, ": /") = 0THEN
files = remplacer (fichiers, "/", "/")
files = server.mappath (fichiers)
Autre
files = remplacer (fichiers, "/", "/")
fichiers = fichiers
Endire
adostext.loadFromfile (fichiers)
stasp = adostext.readText ()
adostext.close
setadostext = rien%>
FunctionDelText (fichier, mode)
Dimdeltext_messs
deltext_messs = ""
SelectCaseKilnt (mode, 0,0,2)
CASE0:
deltext_mess = deltext_messs & "File Operation: Properties modifier la copie mobile Renomment Delete " = rouge> = rouge>
Cas1:
deltext_messs = deltext_messs & "Fonder Fonder: List Creation Directory Manual File Upload File Move Copy Rename and Delete " = rouge>
Se licez
deltext_mess = deltext_messs & ""
deltex = deltext_messs
Finition de fin
Ce qui précède est un tutoriel détaillé sur FSO en fonctionnant le système de fichiers. Je crois que vous l'avez appris. Pour plus de contenu lié, veuillez continuer à prêter attention au canal technologique Wuxin.