XML+FSO+JS 로 서버 쪽 파일 구현

12852 단어 X 로XMMLLFFSSO
먼저 서버 쪽 에 XML 파일 을 만 들 고 클 라 이언 트 로 돌아 갈 수 있 는 프로그램 을 만 듭 니 다.(getfolder.asp)
<%
'written by Linzhang Chen ,2003-4-20
'전재 출처 를 밝 히 고 이 저작권 정 보 를 보관 하 십시오.
response.write ""&chr(13)
response.write ""&chr(13)
folders=request("folder")
if folders="/" then
folders=""
end if
dim count
count=0
folders=replace(folders,"..","")
basefolder=".../media/"기준 폴 더 경로
newfolder=basefolder&folders
Set fso =server.CreateObject("Scripting.FileSystemObject")
set f=fso.getfolder(server.mappath(newfolder))
set sf=f.subfolders
for each fd in sf'지정 한 경로 아래 폴 더 목록 되 돌려 주기
response.write ""&chr(13)
response.write "folder"&chr(13)
response.write ""&fd.name&""&chr(13)
response.write "
"&chr(13)
count=count+1
next
set sf=nothing
set ff=f.Files
for each fi in ff
fname=fi.name
if instr("asf,wma,wmv",lcase(mid(fname,intrrev(fname,".")+1))>0 then 은 되 돌아 갈 수 있 는 파일 형식 을 설정 하여 원본 코드 유출 을 방지 합 니 다.
response.write ""&chr(13)
response.write "file"&chr(13)
response.write ""&fname&""&chr(13)
response.write "
"&chr(13)
count=count+1
end if
next
'이 디 렉 터 리 에 파일 이 없 으 면 빈 요 소 를 보 냅 니 다.
if count=0 then
response.write ""&chr(13)
response.write "empty"&chr(13)
response.write "0"&chr(13)
response.write "
"&chr(13)
end if
response.write "
"
set ff=nothing
set f=nothing
set fso=nothing
%>
다음은 클 라 이언 트 의 JS 시간 입 니 다.(selectfile.asp)



비디오 파일 선택</ITLE><br><style><br>td{font-size:9pt}<br>select{width:210}<br>.s2{width:250}<br></style><br><SCRIPT LANGUAGE="javascript"><br><!--<br>/*written by Linzhang Chen ,2003-4-20 <br>전재 출처 를 밝 히 고 이 저작권 정 보 를 보존 하 십시오*/<br>//그림 미리 불 러 오기<br>var imgback = new Image();<br>imgback.src = "images/arrow.gif";<br>var imgbackgray = new Image();<br>imgbackgray.src = "images/grayarrow.gif";<br>var imgfolder = new Image();<br>imgfolder.src = "images/folder.gif";<br>var imggrayfolder = new Image();<br>imggrayfolder.src = "images/grayfolder.gif";<br>//과거 기록 배열 스 택<br>var arrhistory=new Array();<br>var hisi=0;<br>//파일 이름 을 되 돌려 줄 지 확인 하 는 데 사용 합 니 다.<br>function check()<br>{<br>if (document.all.filename.value=="")<br>{<br>alert("파일 을 먼저 선택 하 십시오");<br>return false;<br>}<br>else<br>{<br>window.returnValue =document.f1.folder.value+document.all.filename.value;<br>window.close();<br>}<br>}<br>//XML 파일 을 가 져 온 내용<br>function getuserlist(url)<br>{ var oXMLDoc = new ActiveXObject('MSXML');<br>oXMLDoc.url = url;<br>var ooRoot=oXMLDoc.root;<br>return ooRoot;<br>}<br>//파일 을 선택 하면 이 값 을 텍스트 상자 에 되 돌려 줍 니 다.<br>function addfile(txt)<br>{<br>document.all.filename.value=txt;<br>}<br>var first=1;//전역 변 수 를 정의 합 니 다.<br>function userlist(folders,ti)/선택 한 상 자 를 표시 합 니 다.<br>{document.f1.folder.value=folders; <br>filebox.document.body.innerHTML="파일 을 불 러 오고 있 습 니 다.잠시 만 기 다 려 주 십시오...";<br>var strshow="";<br>var timeoutid=null;<br>var newfolder="";<br>var arrfolder=new Array();<br>var arrff=new Array();<br>var blankstr="";<br>var oItem;<br>//과거 기록 상태 확인<br>hisi+=ti;<br>arrhistory[hisi]=folders;<br>if (hisi==0)<br>{<br>arrow.innerHTML="<img src=\"images/grayarrow.gif\">";<br>}<br>else<br>{<br>arrow.innerHTML="<img src=\"images/arrow.gif\" border=0 style=\"cursor:hand\" onclick=\"userlist('"+arrhistory[hisi-1]+"',-1)\" onmouseover=\"this.src='images/arrow_over.gif'\" onmouseout=\"this.src='images/arrow.gif'\">";<br>}<br>//현재 폴 더 확인<br>if (document.f1.folder.value=="")<br>{<br>folderid.innerHTML="<img src=\"images/grayfolder.gif\">"<br>}<br>else<br>{newsfolder=checkfolder(document.f1.folder.value)<br>folderid.innerHTML="<img src=\"images/folder.gif\" border=0 style=\"cursor:hand\" onclick=\"userlist('"+newsfolder+"',1)\" onmouseover=\"this.src='images/folder_over.gif'\" onmouseout=\"this.src='images/folder.gif'\">"<br>}<br>//드 롭 다운 상자 에 값 을 부여 합 니 다.<br>document.all.select.options.length=0;<br>newfolder=folders;<br>folderstr=""<br>var _obj=document.all.select;<br>var _o=document.createElement("Option");<br>_o.text="폴 더 선택";<br>_o.value="";<br>_obj.add(_o);<br>if (newfolder!="")<br>{arrfolder=newfolder.split("/")<br>for(var i=0;i<arrfolder.length-1;i++)<br>{blankstr+=" ";<br>folderstr+=arrfolder[i]+"/";<br>_o=document.createElement("Option");<br>_o.text=blankstr+arrfolder[i];<br>_o.value=folderstr;<br>_obj.add(_o);<br>}<br>}<br>document.all.select.options[document.all.select.options.length-1].selected=true;<br>url="getfolder.asp.gl?folder="+folders;<br>oRoot=getuserlist(url)<br>strshow="<table class=file cellspacing=0 cellpadding=0>";<br>len=oRoot.children.length;<br>if (len==1)<br>{oItem = oRoot.children.item(0);<br>if(oItem.children.item(0).text=="empty")<br>strshow="파일 과 폴 더 가 없습니다."<br>else<br>{<br>if(oItem.children.item(0).text=="folder")<br>{<br>strshow+="<tr><td><A href=\"javascript:parent.userlist('"+folders+oItem.children.item(1).text+"/"+"',1)\"><img src=\"images/mediafolder.gif\" border=0 >"+oItem.children.item(1).text+"</A></td></tr>";<br>}<br>else<br>{<br>strshow+="<tr><td><a href=\"javascript:parent.addfile('"+oItem.children.item(1).text+"')\" ><img src=\"images/mediafile.gif\" border=0>"+oItem.children.item(1).text+"</A></td></tr>";<br>}<br>}<br>strshow+="</table>"<br>}<br>else{<br>//데이터 입고<br>for(i=0;i<len;i++)<br>{ oItem = oRoot.children.item(i);<br>if(oItem.children.item(0).text=="folder")<br>{<br>arrff[i]="<A href=\"javascript:parent.userlist('"+folders+oItem.children.item(1).text+"/"+"',1)\"><img src=\"images/mediafolder.gif\" border=0>"+oItem.children.item(1).text+"</A>";<br>}<br>else<br>{<br>arrff[i]="<A href=\"javascript:parent.addfile('"+oItem.children.item(1).text+"')\"><img src=\"images/mediafile.gif\" border=0 height=12>"+oItem.children.item(1).text+"</A>";<br>}<br>}<br>//출력 할 열 을 가 져 옵 니 다.<br>if (len<=6)<br>{x=1;<br>y=6;}<br>else<br>{x=len/6;<br>y=6;}<br>for(var i=0;i<y;i++)<br>{strshow+="<tr>"<br>for(var j=0;j<x;j++)<br>{ponits=j*y+i;<br>if (ponits>=len)<br>{<br>strshow+="<td> </td>";<br>}<br>else<br>{<br>strshow+="<td>"+arrff[ponits]+"</td>";<br>}<br>}<br>strshow+="</tr>"<br>}<br>strshow+="</table>"<br>}<br>filebox.document.body.innerHTML=strshow;<br>}<br>//--><br></SCRIPT><br><script LANGUAGE="vbscript"><br>function checkfolder(folderstr)<br>if (folderstr="" or instr(folderstr,"/")=instrrev(folderstr,"/")) then<br>checkfolder=""<br>else<br>nfolder=left(folderstr,len(folderstr)-1)<br>checkfolder=left(nfolder,instrrev(nfolder,"/"))<br>end if<br>end function<br></script><br></HEAD><br><BODY style="margin:0" bgColor=menu onload="javascript:userlist('',0)"><br><table width="443" border="0" cellspacing="0"><br><tr><br><td height="36"><table width="409" border="0"><br><tr><br><td width="73"align="right">찾기 범위(<u>I</u>):</td><br><td width="214"><select name="select" id="select" size="1" onchange="javascript:userlist(this.value,1);"><br></select></td><br><td width="22" valign="baseline" id="arrow" align=right></td><br><td width="20" valign="middle" id="folderid"></td><br><td width="20" align="left"><img src="images/md.gif" width="16" height="15"></td><br><td width="28" align="left"><img src="images/viewtype.gif" width="23" height="14"></td><br></tr><br></table></td><br></tr><br><tr><br><td height="120"><table width="100%" height="100%" border="0"><br><tr><br><td width="9"> </td><br><td ><br><iframe src="blank.htm" width=415 height=120 id="filebox"></iframe></td><br><td width="13"> </td><br></tr><br></table></td><br></tr><br><tr><br><td height="60"><table width="100%" border="0"><br><FORM METHOD=POST ACTION="" name="f1"><br><input type="hidden" name="folder" value=""><br><tr> <br><td width="85"align="right">파일 이름(<u>N</u>):  </td><br><td width="254"><input type="text" id="filename" size="34"></td><br><td><button onclick="javascript:return check()">열기(<u>O</U>)</button></td><br></tr><br></FORM><br><tr> <br><td align="right">파일 형식(<u>T</u>):</td><br><td><select name="select2" class=s2><br><option>흐 르 는 미디어 파일(*.asf,*.wmv,*.wma)</option><br></select></td><br><td><input type="button"name="Submit"value="취소"onclick="window.close();"></td><br></tr><br></table></td><br></tr><br></table><br></BODY><br></HTML><br>파일 과 폴 더 의 스타일 을 정의 하 는 작은 파일 blank.htm 이 있 습 니 다.<br><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><br><HTML><br><HEAD><br><TITLE> New Document





호출 할 때 아래 함 수 를 사용 하면 가짜 서버 에서 파일 을 선택 하 는 효 과 를 실현 할 수 있 습 니 다.
function selectfile()
{
var arr = showModalDialog("selectfile.asp?temp="+Math.random(), "", "dialogWidth:453px; dialogHeight:252px; status:0;help:1");
if (arr != null)
{
return arr
}
}

좋은 웹페이지 즐겨찾기