ด้านล่างนี้เป็นบทช่วยสอนโดยละเอียดเกี่ยวกับการใช้งานระบบไฟล์ FSO ที่ตัวแก้ไขได้แชร์กับคุณ เพื่อนที่สนใจมาเรียนรู้เกี่ยวกับมันกับบรรณาธิการ!
ใช้ฟังก์ชั่น:
รายการไดเรกทอรีไฟล์ (โฟลเดอร์) ให้การค้นหาไฟล์และโฟลเดอร์ด้านล่างไดเรกทอรี
การเขียนไฟล์การสร้างและการลบให้การดำเนินการแก้ไขและลบไฟล์ (โฟลเดอร์)
การสร้างโฟลเดอร์/ไฟล์ถูกตั้งค่าสำหรับการสร้างโฟลเดอร์ (ไฟล์)
อัปโหลดไฟล์คุณสามารถจำลองการอัปโหลด FTP ด้วยขนาดไฟล์และพิมพ์ไม่ จำกัด
หากคุณสนใจคุณจะไม่รับผลกระทบใด ๆ หากคุณมีปัญหาใด ๆ ที่นี่ฉันบอกว่าฉันไม่มีเวลามากในการท่องอินเทอร์เน็ตและมักจะไม่สามารถดูแลได้ ฉันเห็นว่าผู้คนมักถามคำถามนี้เมื่อเร็ว ๆ นี้ดังนั้นฉันจึงโพสต์โดยหวังว่ามันจะเป็นประโยชน์
upfso.asp // ไฟล์อัปโหลดไฟล์
การคัดลอกรหัสมีดังนี้:
@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 ("ใช่") = "อัปโหลด" แล้ว
path = trim (คำขอ ("path"))
'Response.write (Path & "---")
'response.end
dimfso, fsoisok, f_filename, โหมด
f_filename = trim (คำขอ ("nn"))
โหมด = killint (trim (คำขอ ("โหมด")), 0,0,2)
fsoisok = 1
setfso = server.createObject ("Scripting.FilesYstemObject")
iferr0 จากนั้น
err.lear
fsoisok = 0
endif
dimd_name, f_name
iffsoisok = 1 จากนั้น
ifinstr (1, path, ":/") = 0 แล้ว
path = แทนที่ (lcase (path), "/", "/")
path = server.mappath (พา ธ )
path = แทนที่ (Path & "/", "//", "/")
อื่น
path = แทนที่ (lcase (path), "/", "/")
path = แทนที่ (Path & "/", "//", "/")
endif
ifnotfso.folderexists (เส้นทาง) จากนั้น
Response.write "การค้นหาเส้นทางพื้นฐานล้มเหลวกลับ" = '#000080'>
Response.end
endif
endif
setfso = ไม่มีอะไร
dimfileup
setFileUp = newupload_file
fileup.getDate (-1)
dimf_fileType, f_file
setf_file = fileup.file ("ไฟล์")
iflen (f_filename)
iflen (f_filename)
Response.write ("ไฟล์ว่างโปรดส่งคืน") = '#000080'> = 'JavaScript: History.go (-1);'>
Response.end
endif
'f_fileType = ucase (f_file.fileext)
'iff_file.filesize> 90000 จากนั้น
'response.write ("ขนาดเกินขีด จำกัด ") = 'JavaScript: History.go (-1);'>
'exitsub
ifisvalidfilename (f_filename) = falsethen
Response.write ("ชื่อไม่ถูกต้อง") = '#000080'> = 'JavaScript: History.go (-1);'>
อื่น
Dimfileisexists
setfso = server.createObject ("Scripting.FilesYstemObject")
fileisexists = fso.fileexists (path & f_filename)
iffileisexists = trueandMode1 จากนั้น
fso.deletefile (Path & f_filename)
Response.write ("ไฟล์มีอยู่แล้วถูกลบไปแล้ว") = '#000080'>
f_file.savetofilepath & f_filename
Response.write (" คลิกที่นี่เพื่ออัปโหลดต่อไป:" & path & f_filename & " = '#000080'> ")
elseiffileviesxists = trueandMode = 1 แล้ว
Response.write ("ไฟล์มีอยู่แล้วคุณเลือกที่จะไม่เขียนทับ") = '#000080'>
อื่น
f_file.savetofilepath & f_filename
Response.write (" คลิกที่นี่เพื่ออัปโหลดต่อไป:" & path & f_filename & " = '#000080'> ")
endif
endif
setf_file = ไม่มีอะไร
setFileUp = ไม่มีอะไร
อื่น
Dimpath, nn, mmode
nn = trim (คำขอ ("nn"))
mMode = trim (คำขอ ("โหมด"))
path = แทนที่ (คำขอ ("path"), "//", "/")
ifpath = "" thenPath = "../ newup/"
Response.write (" ")
endif
'ชื่อประสบการณ์
functionisvalidfilename (file_name)
isValidFileName = false
dimre, rest
setre = newregexp
re.ignorecase = true
re.global = true
re.pattern = "[^_/. a-za-z/d]"
rest = re.replace (file_name, "")
iffile_name = restthenisvalidfileName = true
setre = ไม่มีอะไร
endfunction
-
upload.asp // คลาสอัปโหลด
การคัดลอกรหัสมีดังนี้:
dimoupfilestream
classupload_file
dimform, ไฟล์, err
Privatesubclass_initialize
err = -1
enddub
privateSubclass_terminate
'ClearVariables & Objects
Iferr
oupfilestream.close
Form.removeAll
file.removeall
setForm = ไม่มีอะไร
setFile = ไม่มีอะไร
setoupfilestream = ไม่มีอะไร
endif
enddub
PublicsubgetDate (ปรับขนาด)
'definEvariables
Dimrequestbindate, Sstart, Bcrlf, Sinfo, iinfostart, iinfoend, tstream, istart, Ofileinfo
ลดขนาด sfilepath, sfileType, sformvalue, sfilename
dimifindStart, ifIndend
dimiformstart, iformend, sformname
ifrequest.totalbytes
err = 1
exitsub
endif
ifretsize> 0 แล้ว
ifrequest.totalbytes> retsizethen
err = 2
exitsub
endif
endif
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.writequest.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
ทำ
iinfoend = instrb (iformstart, requestbindate, bcrlf & bcrlf) +3
tStream.type = 1
tStream.mode = 3
tstream.open
oupfilestream.position = iformstart
oupfilestream.copytotstream, iinfoend-formerstart
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-ifindstart)
'ifit'Safile
ifinstr (45, sinfo, "filename =" "", 1)> 0 แล้ว
setofileinfo = newfileinfo
'getFileatTributes
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 = ซ้าย (Sfilename, Instrrev (sfilename, "/"))
OFILEINFO.FileEXT = mid (sfilename, Instrrev (sfilename, ".")+1)
ifIndStart = Instr (IfIndend, Sinfo, "เนื้อหาประเภท:", 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.addsformname, ofileinfo
อื่น
'ifit'Sformitem
tstream.close
tStream.type = 1
tStream.mode = 3
tstream.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) จากนั้น
แบบฟอร์ม (sformname) = ฟอร์ม (sformname) & "," & sformvalue
อื่น
form.addsformname, sformvalue
endif
endif
tstream.close
iformstart = iformstart+istart+2
'exitatendoffile
loopuntil (iformstart+2) = iformend
requestBindate = ""
setTstream = ไม่มีอะไร
enddub
endclass
'getFileinfo
ClassFileInfo
DimformName, ชื่อไฟล์, filepath, filesize, fileType, fileStart, fileext
Privatesubclass_initialize
ชื่อไฟล์ = ""
filePath = ""
filesize = 0
filestart = 0
formName = ""
fileType = ""
fileext = ""
enddub
'SaveFileMethod
Publicfunctionsavetofile (FullPath)
dimofilestream, errorchar, i
onerrorresumenext
setofileStream = createObject ("adodb.stream")
Ofilestream.type = 1
Ofilestream.mode = 3
Ofilestream.Open
oupfilestream.position = filestart
oupfilestream.copytoofilestream, filesize
Ofilestream.savetofilefullpath, 2
Ofilestream.close
setofilestream = ไม่มีอะไร
endfunction
'getFileContent
PublicfunctiongetDate
oupfilestream.position = filestart
getDate = oupfilestream.read (ไฟล์)
endfunction
endclass
-
ฟังก์ชั่นหลัก
การคัดลอกรหัสมีดังนี้:
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.contentrotator"
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) = "cdonts.newmail"
TheinstalledObjects (15) = "Pertits.mailsender"
TheinstalledObjects (16) = "lyfupload.uploadfile"
TheinstalledObjects (17) = "Pertits.upload.1"
dimfso
ifisobjinstalled (TheinstalledObjects (9)) จากนั้น
setfso = server.createObject ("Scripting.FilesYstemObject")
endif
functionisobjinstalled (strclassstring)
onerrorresumenext
isobjinstalled = false
err = 0
dimxtestobj
SetXtEsTOBJ = Server.CreateObject (StrClassString)
if0 = errthenisobjinstalled = true
setXtESTOBJ = ไม่มีอะไร
err = 0
endfunction
'ตรวจสอบเวอร์ชันส่วนประกอบ
PublicFunctionGetver (ClassSTR)
onerrorresumenext
dimxtestobj
SetXtEsTOBJ = Server.CreateObject (classStr)
Iferrthen
getver = ""
อื่น
getver = xtestobj.version
endif
setXtESTOBJ = ไม่มีอะไร
endfunction
'ชื่อประสบการณ์
functionisvalidfilename (file_name)
isValidFileName = false
dimre, rest
setre = newregexp
re.ignorecase = true
re.global = true
re.pattern = "[^_/. a-za-z/d]"
rest = re.replace (file_name, "")
iffile_name = restthenisvalidfileName = true
setre = ไม่มีอะไร
endfunction
'การเขียนไฟล์
FunctionWriteTo (XMLFloder, XMLFile, เนื้อหา, โหมด)
writeto = false
ifnotisobjinstalled (TheinstalledObjects (9)) thenexitfunction
โหมด = Killint (โหมด, 0,0,2)
xmlfloder = server.mappath (xmlfloder)
setfso = server.createObject ("Scripting.FilesYstemObject")
ifnotfso.folderexists (xmlfloder) จากนั้น
FSO.CreateFolder (xmlfloder)
endif
xmlfile = แทนที่ (xmlfloder & "/", "//", "/") & xmlfile
'response.write (warn_red (xmlfile)))
dimfsoxml
ifffso.fileexists (xmlfile) และ mode = 1 แล้ว 'ไม่ได้เขียน
exitfunction
elseifffso.fileexists (xmlfile) และ mode = 2then'rewrite
setfsoxml = fso.opentextfile (xmlfile, 2)
fsoxml.writeLine (เนื้อหา)
fsoxml.close
writeto = true
elseifffso.fileexists (xmlfile) Andmode = 8then'add
setfsoxml = fso.opentextfile (xmlfile, 8)
fsoxml.writeLine (เนื้อหา)
fsoxml.close
writeto = true
elseifffso.fileexists (xmlfile) จากนั้น
setfSoxMl = fso.opentextfile (xmlfile, 2) 'rewrite
fsoxml.writeLine (เนื้อหา)
fsoxml.close
writeto = true
อื่น
setFsOxml = fso.createtextfile (xmlfile) 'สร้าง
fsoxml.writeLine (เนื้อหา)
fsoxml.close
writeto = true
endif
endfunction
'ลบไฟล์
functiondelaspfile (x)
onerrorresumenext
delaspfile = false
ifnotfileeExitornot (x) จากนั้น
exitfunction
อื่น
fso.deletefileserver.mappath (x)
delaspfile = true
endif
endfunction
'ไฟล์มีอยู่
FunctionFileExitOrnot (ไฟล์)
onerrorresumenext
dimf_re_file
f_re_file = true
ifnotfso.fileexists (server.mappath (ไฟล์)) thenf_re_file = false
iferr0thenf_re_file = false
fileexitornot = f_re_file
endfunction
'การปราบปรามข้อผิดพลาดพิมพ์ข้อผิดพลาด
functionShow_err (ERR)
onerrorresumenext
iferr.number0 จากนั้น
Response.Clear
dimerr_mess
err_mess = " เกิดข้อผิดพลาด:
หมายเลขข้อผิดพลาด: "& err.number &"
ข้อความแสดงข้อผิดพลาด: "& err.description &"
ไฟล์ข้อผิดพลาด: "& err.source &"
บรรทัดข้อผิดพลาด: "& err.line &" (ไม่รองรับ)
"& เอ่อ
Response.write (err_mess)
endif
endfunction
'เตือน:
functionwarn_red (ยุ่ง)
warn_red = " track:" & mess & "
- = สีแดง>
endfunction
ไดเรกทอรีไฟล์ FSO
FunctionShowAllFile (PATH)
'onerrorresumenext
path = แทนที่ (path, "//", "/")
setfso = createObject ("Scripting.filesystemObject")
DimuploadPath, UploadFolder, ObjSubFolders, AllFiles, FileItem, ObjSubFolder,
sfilename
ifinstr (1, path, ":/") = 0 แล้ว
path = แทนที่ (path, "/", "/")
uploadPath = server.mappath (พา ธ )
อื่น
path = แทนที่ (path, "/", "/")
uploadPath = เส้นทาง
endif
Response.write (warn_red (UploadPath))
ifnotfso.folderexists (UploadPath) จากนั้น
Response.writewarn_red ("การค้นหาเส้นทางล้มเหลว")
exitfunction
endif
SetUploadFolder = fso.getFolder (UploadPath)
ifuploadfolder.isrootfolderthen
response.write (" ไดเรกทอรีราก
-
อื่น
Response.write (" ไดเรกทอรีหลัก:
"& uploadfolder.parentfolder &"
-
endif
Response.write (" ขนาดไดเรกทอรี:" & int (uploadfolder.size/1024) & "KB
-
setobjsubfolders = uploadfolder.subfolders
dimfso_mes
fso_mes = "
foreachobjsubfolderinobjsubfolders
fso_mes = fso_mes & "
ต่อไป
setAllFiles = uploadFolder.files
foreachfileiteminallfiles
fso_mes = fso_mes & "
ต่อไป
fso_mes = fso_mes & "
-
Response.write (fso_mes)
Response.writedEltext (UploadPath, 1)
endfunction
'คุณสมบัติไฟล์
FunctionFilePro (ชื่อ)
NAME = แทนที่ (ชื่อ, "//", "/")
สลัว
ifinstr (1, ชื่อ, ":/") = 0 แล้ว
NAME = แทนที่ (ชื่อ, "/", "/")
ซึ่ง file = server.mappath (ชื่อ)
อื่น
NAME = แทนที่ (ชื่อ, "/", "/")
FHANE FILE = NAME
endif
setfso = createObject ("Scripting.filesystemObject")
ifnotfso.fileexists (ซึ่งไฟล์) แล้ว
Response.write (warn_red ("ไฟล์ไม่มีอยู่หรือไม่มีสิทธิ์การเข้าถึง")))
exitfunction
endif
dimf2, s_mess
setf2 = fso.getFile (ซึ่งไฟล์)
s_mess = " ไดเรกทอรีหลัก:" & f2.parentfolder &
-
-
s_mess = s_mess & "ชื่อไฟล์:" & f2.name & "
-
s_mess = s_mess & "ไฟล์ชื่อเส้นทางสั้น ๆ :" & f2.shortpath & "
-
s_mess = s_mess & "ที่อยู่ทางกายภาพไฟล์:" & f2.path & "
-
s_mess = s_mess & "แอตทริบิวต์ไฟล์:" & f2.attributes & "
-
s_mess = s_mess & "ขนาดไฟล์:" & f2.size & "
-
s_mess = s_mess & "ประเภทไฟล์:" & f2.type & "
-
s_mess = s_mess & "เวลาสร้างไฟล์:" & f2.dateCreated & "
-
s_mess = s_mess & "เวลาการเข้าถึงล่าสุด:" & f2.datelastaccessed & "
-
s_mess = s_mess & "เวลาที่แก้ไขล่าสุด:" & f2.datelastmodified & "
-
Response.write (s_mess)
ifkillint (trim (คำขอ ("type")), 0,0,2) 0 แล้ว
ShowText (ซึ่งไฟล์ใด)
endif
Response.writedeltext (ซึ่ง File, 0)
endfunction
-
SubshowText (ไฟล์)
dimistr, adostext, strap
setAdostext = server.createObject ("adodb.stream")
adostext.mode = 3
adostext.type = 2
adostext.charset = "GB2312"
'adostext.charset = "big5"
adostext.open
ifinstr (1, ไฟล์, ":/") = 0 แล้ว
files = แทนที่ (ไฟล์, "/", "/")
files = server.mappath (ไฟล์)
อื่น
files = แทนที่ (ไฟล์, "/", "/")
ไฟล์ = ไฟล์
endif
adostext.loadfromfile (ไฟล์)
strasp = adostext.readText ()
adostext.close
setadostext = ไม่มีอะไร%>
FunctionDelText (ไฟล์, โหมด)
dimdeltext_mess
deltext_mess = ""
SelectCaseKillint (โหมด, 0,0,2)
case0:
deltext_mess = deltext_mess & "การดำเนินการไฟล์: คุณสมบัติ แก้ไข การคัดลอกมือถือ Rename DELETE " = สีแดง> = สีแดง>
กรณีที่ 1:
deltext_mess = deltext_mess & "การดำเนินการโฟลเดอร์: รายการไดเรกทอรีการสร้างรายการไฟล์คู่มือการอัปโหลดไฟล์ย้ายการคัดลอกการเปลี่ยนชื่อ และลบ " = สีแดง>
endelect
deltext_mess = deltext_mess & ""
deltext = deltext_mess
endfunction
ข้างต้นเป็นบทช่วยสอนโดยละเอียดเกี่ยวกับ FSO ที่ใช้งานระบบไฟล์ ฉันเชื่อว่าคุณได้เรียนรู้แล้ว สำหรับเนื้อหาที่เกี่ยวข้องเพิ่มเติมโปรดดำเนินการต่อเพื่อให้ความสนใจกับช่องเทคโนโลยี Wuxin