아래는 편집자가 귀하와 공유 한 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 & "---")
'응답. 엔드
Dimfso, fsoisok, f_filename, 모드
f_filename = trim (request ( "nn"))
모드 = killint (trim (요청 ( "모드")), 0,0,2)
fsoisok = 1
setfso = server.createobject ( "scripting.filesystemobject")
iferr0then
err.clear
fsoisok = 0
endif
Dimd_name, f_name
iffsoisok = 1then
ifinstr (1, 경로, ":/") = 0then
path = replace (lcase (path), "/", "/")
Path = Server.mappath (Path)
path = replace (path & "/", "//", "/")
또 다른
path = replace (lcase (path), "/", "/")
path = replace (path & "/", "//", "/")
endif
ifnotfso.dolerexists (Path)
응답. "기본 경로 검색 실패, 반환" = '#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.fileext)
'iff_file.filesize> 90000then
'응답 .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 = trueandmode1then
fso.deletefile (path & f_filename)
response.write ( "파일이 이미 존재하고 삭제되었습니다;") = '#000080'>
f_file.savetofilepath & f_filename
response.write ( " 계속 업로드하려면 여기를 클릭하십시오 :"& path & f_filename & " = '#000080'> ")
elseiffileisexists = trueandmode = 1then
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 = replace (request ( "path"), "//", "/")
ifpath = ""thepath = "../ newup/"
response.write ( " ")
endif
'경험 이름
functionisValidFilename (file_name)
isvalidfilename = false
Dimre, 구속
setre = newRegexp
re.ignorecase = true
re.global = true
re.pattern = "[^_/. a-za-z/d]" "
grong = re.replace (file_name, "")
iffile_name = verstenisvalidfilename = true입니다
setre = 아무것도
최종 기능 장애
%>
upload.asp // 클래스 업로드
코드 사본은 다음과 같습니다.
DimoupFilestream
classupload_file
Dimform, File, err
privatesubclass_initialize
err = -1
Endsub
privatesubclass_terminate
'Clearvaribles & Objects
Iferr
OUPFILESTREAM.CLOSE
형태. removeall
file.removeall
setform = 아무것도 없습니다
setfile = 아무것도 없습니다
setoupfilestream = 아무것도
endif
Endsub
publicsubgetDate (retsize)
'definevariables
Dimrequestbindate, Sstart, Bcrlf, Sinfo, Iinfostart, iinfoend, tstream, iStart, OfileInfo
dimifilesize, sfilepath, sfiletype, sformvalue, sfilename
Dimifindstart, Ifindend
DimiformStart, iformend, Sformname
ifrequest.totalbytes
err = 1
출구
endif
ifretsize> 0then
ifrequest.totalbytes> retsizethen
err = 2
출구
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.WRITEREQUEST.BARUNERRED (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 (ifortstart, requestbindate, bcrlf & bcrlf) +3
tstream.type = 1
tstream.mode = 3
tstream.open
oupfilestream.position = ifortstart
OUPFILESTREAM.COPYTOTSTREAM, IINFOEND-COMPENSTART
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'사파
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.fileext = mid (sfilename, instrev (sfilename, ".")+1)
ifindstart = inst (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.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)
form (sformname) = form (sformname) & ","& sformvalue
또 다른
form.addsformName, sformValue
endif
endif
tstream.close
iformstart = iformstart+istart+2
'Exitatendoffile
loopuntil (iformstart+2) = iformend
requestBindate = ""
settstream = 아무것도
Endsub
엔드 클래스
'getfileinfo
ClassFileInfo
DimformName, filename, filepath, filesize, filetype, filestart, fileext
privatesubclass_initialize
filename = ""
filepath = ""
파일 크기 = 0
filestart = 0
formname = ""
filetype = ""
fileExt = ""
Endsub
'SaveFileMethod
publicftionsavetofile (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 = 아무것도
최종 기능 장애
'GetFileContent
PublicFunctionGetDate
OUPFILESTREAM.Position = filestart
getDate = oupfilestream.Read (Filesize)
최종 기능 장애
엔드 클래스
%>
핵심 기능
코드 사본은 다음과 같습니다.
Dimtheinstalledobjects (17)
TheinstalledoBjects (0) = "MSWC.adrotator"
TheinstalledoBjects (1) = "MSWC.BrowserType"
TheinstalledoBjects (2) = "MSWC.NextLink"
설치된 도구 (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"
설치된 도구 (10) = "adodb.connection"
Theinstalledobjects (11) = "SoftArtisans.FileUp"
Theinstalledobjects (12) = "SoftArtisans.fileManager"
TheinstalledObjects (13) = "Jmail.smtpmail"
설치된 도구 (14) = "cdonts.newmail"
Theinstalledobjects (15) = "persits.mailsender"
TheinstalledoBjects (16) = "lyfupload.uploadfile"
설치된 도구 (17) = "persits.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
최종 기능 장애
'구성 요소 버전을 확인하십시오
PublicFunctionGetVer (ClassStr)
onerrorresumenext
dimxtestobj
setxtestobj = server.createobject (classstr)
iferrthen
getver = ""
또 다른
getver = xtestobj.version
endif
setxtestobj = 아무것도 없습니다
최종 기능 장애
'경험 이름
functionisValidFilename (file_name)
isvalidfilename = false
Dimre, 구속
setre = newRegexp
re.ignorecase = true
re.global = true
re.pattern = "[^_/. a-za-z/d]" "
grong = re.replace (file_name, "")
iffile_name = verstenisvalidfilename = true입니다
setre = 아무것도
최종 기능 장애
'파일 쓰기
functionWriteto (XMLFLODER, XMLFILE, 컨텐츠, 모드)
writeto = false
ifnotisobjinstalled (TheinstalledObjects (9))
모드 = killint (모드, 0,0,2)
xmlfloder = server.mappath (xmlfloder)
setfso = server.createobject ( "scripting.filesystemobject")
ifnotfso.dolerexists (xmlfloder)
fso.createfolder (xmlfloder)
endif
xmlfile = replace (xmlfloder & "/", "//", "/") & xmlfile
'응답 .write (warn_red (xmlfile))
Dimfsoxml
ifffso.fileExists (xmlfile) 및 mode = 1then '은 쓰지 않습니다
종료 기능
elseifffso.fileExists (xmlfile) 및 모드 = 2then'rewrite
setfsoxml = fso.opentextfile (xmlfile, 2)
fsoxml.writeline (컨텐츠)
fsoxml.close
writeto = true
elseifffso.fileExists (xmlfile) 및 모드 = 8then'add
setfsoxml = fso.opentextfile (xmlfile, 8)
fsoxml.writeline (컨텐츠)
fsoxml.close
writeto = true
elseifffso.fileExists (xmlfile)
setfsoxml = fso.opentextfile (xmlfile, 2) '다시 작성
fsoxml.writeline (컨텐츠)
fsoxml.close
writeto = true
또 다른
setfsoxml = fso.createtextFile (xmlfile) '작성
fsoxml.writeline (컨텐츠)
fsoxml.close
writeto = true
endif
최종 기능 장애
'파일을 삭제하십시오
functiondelaspfile (x)
onerrorresumenext
delaspfile = false
ifnotfileexitornot (x)
종료 기능
또 다른
fso.deletefileserver.mappath (x)
delaspfile = true
endif
최종 기능 장애
'파일이 존재합니다
functionfileexitornot (파일)
onerrorresumenext
dimf_re_file
f_re_file = true
ifnotfso.fileExists (server.mappath (file)) thef_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
response.write (err_mess)
endif
최종 기능 장애
'경고하다:
functionwarn_red (mess)
warn_red = " 트랙 :"& mess & "
" = 빨간>
최종 기능 장애
'FSO 파일 디렉토리
FunctionShowAllFile (경로)
'onerrorresumenext
path = replace (path, "//", "/")
setfso = createobject ( "Scripting.FilesyStemObject")
Dimuploadpath, 업로드 폴더, objsubfolders, allfiles, fileitem, objsubfolder,
sfilename
ifinstr (1, 경로, ":/") = 0then
path = replace (path, "/", "/")
UploadPath = Server.mappath (경로)
또 다른
path = replace (path, "/", "/")
업로드 팟 = 경로
endif
response.write (warn_red (uploadpath))
ifnotfso.DODEREXISST (업로드 포트)
response.writewarn_red ( "경로 조회 실패")
종료 기능
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 (업로드 포트, 1)
최종 기능 장애
'파일 속성
functionFilePro (이름)
name = replace (이름, "//", "/")
어두운 곳
ifinstr (1, name, ":/") = 0then
name = replace (이름, "/", "/")
whyfile = server.mappath (이름)
또 다른
name = replace (이름, "/", "/")
whyfile = 이름
endif
setfso = createobject ( "Scripting.FilesyStemObject")
ifnotfso.fileExists (whatfile)
response.write (WARN_RED ( "파일이 존재하지 않거나 액세스 권한이 없음")))))
종료 기능
endif
Dimf2, s_mess
setf2 = fso.getfile (whofile)
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 (request ( "type")), 0,0,2) 0then
showtext (whofile)
endif
response.writedelText (Whofile, 0)
최종 기능 장애
'
서브 쇼크 텍스트 (파일)
Dimister, Adostext, 스트랩
setAdostext = server.createObject ( "adodb.stream")
adostext.mode = 3
adostext.type = 2
adostext.charset = "gb2312"
'adostext.charset = "big5"
adostext.open
ifinstr (1, 파일, ":/") = 0then
files = replace (파일, "/", "/")
files = server.mappath (파일)
또 다른
files = replace (파일, "/", "/")
파일 = 파일
endif
adostext.loadfromfile (파일)
strasp = adostext.readtext ()
adostext.close
setAdostext = nothing%>
functionDelText (파일, 모드)
dimdeltext_mess
deltext_mess = ""
SelectCaseKillint (모드, 0,0,2)
CASE0 :
deltext_mess = deltext_mess & "파일 작동 : 속성 편집 모바일 사본 편집 삭제" 삭제 " = 빨간> = 빨간>
케이스 1 :
deltext_mess = deltext_mess & "폴더 작동 : 목록 생성 디렉토리 매뉴얼 파일 업로드 파일 이동 사본 이름 바꾸기 및 삭제 " = 빨간>
EndSelect
deltext_mess = deltext_mess & ""
deltext = deltext_mess
최종 기능 장애
위는 파일 시스템을 작동하는 FSO에 대한 자세한 자습서입니다. 나는 당신이 그것을 배웠다고 믿습니다. 더 많은 관련 컨텐츠는 Wuxin Technology Channel에 계속주의를 기울이십시오.