فيما يلي برنامج تعليمي مفصل حول تشغيل نظام ملفات 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 (request ("path"))
'Response.write (path & "---")
استجابة
Dimfso ، fsoisok ، f_filename ، الوضع
f_filename = trim (request ("nn"))
الوضع = killint (trim (request ("mode")) ، 0،0،2)
fsoisok = 1
setfso = server.createObject ("scripting.filesystemObject")
iferr0then
err.clear
fsoisok = 0
Endif
dimd_name ، f_name
iffsoisok = 1th
ifinstr (1 ، المسار ، ":/") = 0then
PATH = استبدال (LCASE (PATH) ، "/" ، "/")
path = server.mappath (path)
path = استبدال (المسار و "/" ، "//" ، "/")
آخر
PATH = استبدال (LCASE (PATH) ، "/" ، "/")
path = استبدال (المسار و "/" ، "//" ، "/")
Endif
ifnotfso.folderexists (المسار) ثم
استجابة. "فشل البحث في المسار الأساسي ، العودة" = '#000080'>
استجابة
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) ؛'>
استجابة
Endif
'f_filetype = ucase (f_file.filext)
'iff_file.filesize> 90000then
'Response.write ("الحجم يتجاوز الحد") = 'JavaScript: History.go (-1) ؛'>
'Exitsub
ifisvalidfilename (f_filename) = falsethen
استجابة. write ("اسم غير صحيح") = '#000080'> = 'JavaScript: History.go (-1) ؛'>
آخر
DimfileIsexists
setfso = server.createObject ("scripting.filesystemObject")
fileIseSxists = fso.filexists (path & f_filename)
Iffileisexists = trueandmode1then
fso.deletefile (path & f_filename)
Response.write ("الملف موجود بالفعل ، تم حذفه ؛") = '#000080'>
f_file.savetofilepath & f_filename
Response.write (" انقر هنا لمتابعة التحميل:" & path & f_filename & " = '#000080'> ")
EsplyiSexists = trueAndMode = 1th
Response.write ("الملف موجود بالفعل ، اخترت عدم الكتابة فوق") = '#000080'>
آخر
f_file.savetofilepath & f_filename
Response.write (" انقر هنا لمتابعة التحميل:" & path & f_filename & " = '#000080'> ")
Endif
Endif
setf_file = لا شيء
setFileup = لا شيء
آخر
Dimpath ، NN ، Mmode
nn = trim (request ("nn"))
mmode = trim (طلب ("وضع")))
path = استبدال (طلب ("مسار") ، "//" ، "/")
ifpath = "" thenpath = "../ newup/"
استجابة. write (" ")
Endif
اسم الخبرة
FunctionIsValidFilename (file_name)
isValidFilename = خطأ
ديمري ، كبح
setre = newregexp
re.ignorecase = صحيح
re.global = صحيح
re.pattern = "[^_/. a-za-z/d]"
croys = re.replace (file_name ، "")
iffile_name = rectrthenisvalidfilename = true
setre = لا شيء
الوظيفية
٪>
upload.asp // تحميل فئة
نسخة الكود كما يلي:
dimoupfilestream
classupload_file
dimform ، ملف ، err
privatesubclass_initialize
خطأ = -1
ينتهي
privatesubclass_terminate
'Clearvariables والكائنات
iferr
oupfilestream.close
form.removeall
file.removeall
setForm = لا شيء
setFile = لا شيء
setoupfilestream = لا شيء
Endif
ينتهي
publicsubgetdate (retsize)
'DefineVariables
dimrequestbindate ، sstart ، bcrlf ، sinfo ، iinfostart ، iinfoend ، tstream ، istart ، ofileinfo
dimifilesize ، sfilepath ، sfiletype ، sformvalue ، sfilename
DimifindStart ، ifindend
DimiformStart ، iformend ، sformname
ifrequest.totalbytes
خطأ = 1
Exitsub
Endif
ifretsize> 0then
ifrequest.totalbytes> retsizethen
خطأ = 2
Exitsub
Endif
Endif
setForm = server.createObject ("scripting.dictionary")
form.comparemode = 1
setFile = server.createObject ("scripting.dictionary")
file.comparemode = 1
setStream = server.createBject ("Adodb.stream")
setoupfilestream = server.createBject ("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 ، instr (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.copytottream ، iinfoend-ifformstart
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)> 0then
setOfileInfo = newFileInfo
'getFileAttributes
IfindStart = inst (ifindend ، sinfo ، "filename =" "" ، 1) +10
ifindend = instr (ifindstart ، sinfo ، "" "" ، 1)
sfilename = mid (sinfo ، ifindstart ، ifindend-ifindstart)
OfileInfo.filename = Mid (sfilename ، instrev (sfilename ، "/")+1)
OfileInfo.filepath = اليسار (sfilename ، instrev (sfilename ، "/"))
OfileInfo.filext = Mid (sfilename ، instrev (sfilename ، ".")+1)
IfindStart = inst (ifindend ، sinfo ، "نوع المحتوى:" ، 1) +14
ifindend = inst (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.copytottream ، iformstart-iinfoend-2
tstream.position = 0
tstream.type = 2
tstream.charset = "utf-8"
sformvalue = tstream.readtext
ifform.exists (sformname) ثم
Form (sformName) = form (sformname) & "،" & sformvalue
آخر
form.addsformName ، sformvalue
Endif
Endif
tstream.close
iformStart = iformstart+istart+2
'EXITATENDOFFILE
LOOPUNTIL (iformstart+2) = iformend
requestBindate = ""
setStream = لا شيء
ينتهي
endclass
'getFileInfo
ClassFileInfo
DimformName ، اسم الملف ، FilePath ، Filesize ، FileType ، Filestart ، Filext
privatesubclass_initialize
اسم الملف = ""
filepath = ""
ملفات = 0
FileStart = 0
FormName = ""
filetype = ""
filext = ""
ينتهي
'SaveFileMethod
publicfunctionSavetofile (FullPath)
dimofilestream ، errorchar ، i
onerrorresumenext
setofilestream = createObject ("Adodb.stream")
Ofilestream.type = 1
Ofilestream.mode = 3
Ofilestream.Open
oupfilestream.position = filestart
oupfilestream.copyToOfilestream ، ملفات
Ofilestream.savetofilefullpath ، 2
ofilestream.close
setOfilestream = لا شيء
الوظيفية
'getFileContent
publicfunctiongetDate
oupfilestream.position = filestart
getDate = oupfilestream.read (ملفات)
الوظيفية
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) = "persits.mailsender"
theinstalledobjects (16) = "lyfupload.uploadfile"
theInstalledObjects (17) = "persits.upload.1"
Dimfso
ifisobjinstalled (theinstalledobjects (9)) ثم
setfso = server.createObject ("scripting.filesystemObject")
Endif
FunctionIsobjinstalled (StrclassString)
onerrorresumenext
isobjinstalled = false
خطأ = 0
dimxtestobj
setxtestobj = server.createBject (strclassString)
if0 = errthenisobjinstalled = true
setxtestobj = لا شيء
خطأ = 0
الوظيفية
تحقق من إصدار المكون
PublicFunctionGetver (ClassSt)
onerrorresumenext
dimxtestobj
setxtestobj = server.createBject (classSt)
iferrthen
getver = ""
آخر
getver = xtestobj.version
Endif
setxtestobj = لا شيء
الوظيفية
اسم الخبرة
FunctionIsValidFilename (file_name)
isValidFilename = خطأ
ديمري ، كبح
setre = newregexp
re.ignorecase = صحيح
re.global = صحيح
re.pattern = "[^_/. a-za-z/d]"
croys = re.replace (file_name ، "")
iffile_name = rectrthenisvalidfilename = true
setre = لا شيء
الوظيفية
'كتابة الملف
FunctionWriteto (xmlfloder ، xmlfile ، المحتوى ، الوضع)
Writeto = خطأ
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.filexists (xmlfile) و mode = 1th 'لا يكتب
exitfunction
elseifffso.filexists (xmlfile) و Mode = 2then'Rewrite
setFsoxml = fso.opentextFile (xmlfile ، 2)
fsoxml.writeline (المحتوى)
fsoxml.close
Writeto = صحيح
elseifffso.filexists (xmlfile) و mode = 8then'add
setFsoxml = fso.opentextFile (xmlfile ، 8)
fsoxml.writeline (المحتوى)
fsoxml.close
Writeto = صحيح
elseifffso.filexists (xmlfile) ثم
setFsoxml = fso.opentextFile (xmlfile ، 2) 'إعادة كتابة
fsoxml.writeline (المحتوى)
fsoxml.close
Writeto = صحيح
آخر
setFsoxml = fso.createTextFile (xmlfile) 'إنشاء
fsoxml.writeline (المحتوى)
fsoxml.close
Writeto = صحيح
Endif
الوظيفية
حذف الملف
FunctionDelaspfile (x)
onerrorresumenext
DeLaspfile = خطأ
ifnotfileexitornot (x) ثم
exitfunction
آخر
fso.deletefileserver.mappath (x)
DeLaspfile = صحيح
Endif
الوظيفية
"الملف موجود
FunctionFileexitornot (ملف)
onerrorresumenext
DIMF_RE_FILE
f_re_file = true
ifnotfso.filexists (server.mappath (file)) therf_re_file = false
iferR0thenf_re_file = false
fileExitornot = f_re_file
الوظيفية
"قمع الخطأ ، خطأ طباعة
FunctionShow_err (err)
onerrorresumenext
iferr.number0then
استجابة
dimerr_mess
err_mess = " حدث خطأ:
رقم الخطأ: "& err.number &"
رسالة الخطأ: "& err.description &"
ملف الخطأ: "& err.source &"
خط الخطأ: "& err.line &" (غير مدعوم)
"& err
استجابة. write (err_mess)
Endif
الوظيفية
حذر:
FunctionWarn_red (فوضى)
WARN_RED = " Track:" & Mess & "
" = أحمر>
الوظيفية
دليل ملف FSO
FunctionShowAllfile (المسار)
'onerrorresumenext
path = استبدال (المسار ، "//" ، "/")
setfso = createObject ("scripting.filesystemObject")
dimuploadpath ، التحميل ، objsubfolders ، allfiles ، fileitem ، objsubfolder ،
sfilename
ifinstr (1 ، المسار ، ":/") = 0then
path = استبدال (المسار ، "/" ، "/")
UploadPath = server.mappath (path)
آخر
path = استبدال (المسار ، "/" ، "/")
exploadpath = path
Endif
استجابة. write (WARN_RED (UploadPath))
ifnotfso.folderexists (تحميل path) ثم
استجابة. writewarn_red ("فشل البحث في المسار")
exitfunction
Endif
setuploadfolder = fso.getfolder (UploadPath)
Ifuploadfolder.isrootfolderthen
استجابة. write (" دليل الجذر
")
آخر
Response.write (" دليل الوالدين:
"& exploadfolder.parentfolder &"
")
Endif
Response.write (" حجم الدليل:" & int (exploadfolder.size/1024) و "kb
")
setObjSubfolders = تحميل folder.subfolders
dimfso_mes
fso_mes = "
foreachobjsubfolderinobjsubfolders
fso_mes = fso_mes & "
التالي
setAllfiles = exploadfolder.files
foreachfileiteminallfiles
fso_mes = fso_mes & "
التالي
fso_mes = fso_mes & "
"
استجابة. write (FSO_MES)
استجابة. writedeltext (UploadPath ، 1)
الوظيفية
خصائص الملف
FunctionFilePro (اسم)
الاسم = استبدال (الاسم ، "//" ، "/")
خافت
ifinstr (1 ، الاسم ، ":/") = 0then
الاسم = استبدال (الاسم "،/" ، "/")
therfile = server.mappath (اسم)
آخر
الاسم = استبدال (الاسم "،/" ، "/")
thanfile = الاسم
Endif
setfso = createObject ("scripting.filesystemObject")
ifnotfso.filexists (thanfile) ثم
Response.write (warn_red ("الملف غير موجود أو لا يوجد لديه إذن وصول"))))
exitfunction
Endif
DIMF2 ، S_MESS
setf2 = fso.getfile (thanfile)
S_MESS = " دليل الوالدين:" & f2.parentfolder &
"
"
S_MESS = S_MESS و "اسم الملف:" & f2.name & "
"
S_MESS = S_MESS & "File Short Path Name:" & 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.datelastAccated & "
"
S_MESS = S_MESS و "أحدث وقت معدل:" & f2.datelastModified & "
"
استجابة. write (S_MESS)
ifkillint (trim (request ("type")) ، 0،0،2) 0then
showtext (thanfile)
Endif
استجابة. writedeltext (therfile ، 0)
الوظيفية
'
subshowtext (ملفات)
Dimister ، adostext ، حزام
setAdostext = server.createBject ("adodb.stream")
adostext.mode = 3
adostext.type = 2
adostext.charset = "GB2312"
'adostext.charset = "big5"
adostext.Open
ifinstr (1 ، ملفات ، ":/") = 0then
الملفات = استبدال (الملفات ، "/" ، "/")
الملفات = server.mappath (ملفات)
آخر
الملفات = استبدال (الملفات ، "/" ، "/")
الملفات = الملفات
Endif
adostext.loadfromfile (ملفات)
strasp = adostext.readtext ()
adostext.close
setAdostext = لا شيء ٪>
FunctionDeltext (ملف ، وضع)
dimdeltext_mess
deltext_mess = ""
SelectScyKillint (الوضع ، 0،0،2)
Case0:
deltext_mess = deltext_mess & "تشغيل الملف: خصائص تحرير نسخة الهاتف المحمول إعادة تسمية الحذف " = أحمر> = أحمر>
الحالة 1:
deltext_mess = deltext_mess & "تشغيل المجلد: قائمة إنشاء ملف دليل تحميل الملف ، نقل نسخة إعادة تسمية وحذف " = أحمر>
endselect
deltext_mess = deltext_mess & ""
deltext = deltext_mess
الوظيفية
ما ورد أعلاه هو برنامج تعليمي مفصل على FSO تشغيل نظام الملفات. أعتقد أنك تعلمت ذلك. لمزيد من المحتوى ذي الصلة ، يرجى الاستمرار في الانتباه إلى قناة Wuxin Technology.