<p>用XML+FSO+JS实现服务器端文件的</p> <p>首先在服务器端先创建一个程序可以生成XML文件,以返回客户端,(getfolder.asp)<br /> &lt;%<br /> &#39;written by Linzhang Chen ,2003-4-20<br /> &#39; 转载请注明出处和保留此版权信息<br /> response.write &quot;<!--?xml version=""1.0"" encoding=""GB2312""?-->&quot;&amp;chr(13)<br /> response.write &quot;<mediafile>&quot;&amp;chr(13)<br /> folders=request(&quot;folder&quot;)<br /> if folders=&quot;/&quot; then<br /> folders=&quot;&quot;<br /> end if<br /> dim count<br /> count=0<br /> folders=replace(folders,&quot;..&quot;,&quot;&quot;)<br /> basefolder=&quot;../media/&quot;&#39;基准的文件夹路径<br /> newfolder=basefolder&amp;folders<br /> Set fso =server.CreateObject(&quot;Scripting.FileSystemObject&quot;)<br /> set f=fso.getfolder(server.mappath(newfolder))<br /> set sf=f.subfolders<br /> for each fd in sf&#39;返回指定路径下面的文件夹列表<br /> response.write &quot;<file>&quot;&amp;chr(13)<br /> response.write &quot;<ftype>folder</ftype>&quot;&amp;chr(13)<br /> response.write &quot;<fname>&quot;&amp;fd.name&amp;&quot;</fname>&quot;&amp;chr(13)<br /> response.write &quot;</file>&quot;&amp;chr(13)<br /> count=count+1<br /> next<br /> set sf=nothing<br /> set ff=f.Files<br /> for each fi in ff<br /> fname=fi.name<br /> if instr(&quot;asf,wma,wmv&quot;,lcase(mid(fname,instrrev(fname,&quot;.&quot;)+1)))&gt;0 then&#39;设定允许返回的文件类型,防止源码泄露<br /> response.write &quot;<file>&quot;&amp;chr(13)<br /> response.write &quot;<ftype>file</ftype>&quot;&amp;chr(13)<br /> response.write &quot;<fname>&quot;&amp;fname&amp;&quot;</fname>&quot;&amp;chr(13)<br /> response.write &quot;</file>&quot;&amp;chr(13)<br /> count=count+1<br /> end if<br /> next<br /> &#39;如果该目录下没有文件,就发一个空元素<br /> if count=0 then<br /> response.write &quot;<file>&quot;&amp;chr(13)<br /> response.write &quot;<ftype>empty</ftype>&quot;&amp;chr(13)<br /> response.write &quot;<fname>0</fname>&quot;&amp;chr(13)<br /> response.write &quot;</file>&quot;&amp;chr(13)<br /> end if<br /> response.write &quot;</mediafile>&quot;<br /> set ff=nothing<br /> set f=nothing<br /> set fso=nothing<br /> %&gt;<br /> 下面就是客户端的JS的功夫了(selectfile.asp)</p> <p></p> <p></p> <p> <p> <p><br /> <title></title> <br /> <style type="text/css"><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 /> 转载请注明出处和保留此版权信息 */</p> <p>//预装载图片<br /> var imgback = new Image();<br /> imgback.src = "<a data-cke-saved-href="http://www.163design.net/a/o/images/arrow.gif" href="http://www.163design.net/a/o/images/arrow.gif">http://www.163design.net/a/o/images/arrow.gif</a>";<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 /> }</p> <p>var first=1;//定义一个全局变量</p> <p>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 data-cke-saved-src=http://www.163design.net/ src=http://www.163design.net/"images/grayarrow.gif">";<br /> }<br /> else<br /> {<br /> arrow.innerHTML="<img data-cke-saved-src=http://www.163design.net/ src=http://www.163design.net/"<a data-cke-saved-href="http://www.163design.net/a/o/images/arrow.gif" href="http://www.163design.net/a/o/images/arrow.gif">http://www.163design.net/a/o/images/arrow.gif</a>" border=0 onclick="userlist('"+arrhistory[hisi-1]+"',-1)" onmouseover="this.src='http://www.163design.net/a/o/images/arrow_over.gif'" onmouseout="this.src='http://www.163design.net/a/o/images/arrow.gif'">";<br /> }<br /> //确定当前的文件夹<br /> if (document.f1.folder.value=="")<br /> {<br /> folderid.innerHTML="<img data-cke-saved-src=http://www.163design.net/ src=http://www.163design.net/"images/grayfolder.gif">"<br /> }<br /> else<br /> {newsfolder=checkfolder(document.f1.folder.value)</p></script> </p> </p> </p> <p></p>
返回顶部 留言