作家
登录

web文件管理器的后续开发

作者: 来源:www.28hudong.com 2013-03-30 08:43:10 阅读 我要评论

web文件管理器的后续开发。。。 选择自 iuhxq 的 Blog 关键字 web文件管理器的后续开发。。。 出处 今天看了一下ccopus的DM45,做的很不错,在这之前我也想做一个了,做一个跟windows资源管理器非常类似的程序。看到dm45以后觉得自己还是放弃吧,WEB方式的文件管理无论如何都是在权限允许内操作,而且大家实现的也都差不多,无非是在外观上,易操作上做文章,文件管理本来作用也不是很大,如果是多用户的权限比较难控制,既然别人做了,我想还是不要重复劳动的好,况且也不见得能做的好。下面的代码贴出来留个纪念,实现了文件的本地排序。但目录之间的层次还没有搞好。有兴趣的可以拿去参考,理论上应该可以实现跟windows资源管理器极类似的界面和操作方式。整个界面都采取无刷新方式。用XMLHTTP来执行后台代码,用JS来修改前台显示。这里体现了一种思想,希望对初学者能有个帮助。 代码如下: <title>WEB文件管理器2.0版 http://asp2004.net</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <style type="text/css"> <!-- a { font-size: 9pt; color: #3300CC; text-decoration: none; } body { font-size: 9pt; margin-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; line-height: 20px; background-color: #EEEEEE; } td { font-size: 9pt; line-height: 20px; } .tx { border-color:#000000; border-left-width: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 1px; font-size: 9pt; background-color: #EEEEEE; } .tx1 { font-size: 9pt; border: 1px solid; border-color:#000000; color: #000000; } --> </style> <% '版权声明:本代码仅供学习研究之用,本人不对因使用本程序而造成的任何后果负责。未经作者书面许可不得用于商业用途。 'QQ:103895 'email:quxiaohui_0@163.com 'http://asp2004.net Server.ScriptTimeout = 999 action = Request("action") temp = Split(Request.ServerVariables("URL"), "/") url = temp(UBound(temp)) Const pass = ""'登陆密码 '登陆验证 Set fso = CreateObject("Scripting.FileSystemObject") Path = Request("foldername") If Path = "" Then Path = server.MapPath("./") ShowFolderList(Path) Set fso = Nothing '列出文件和文件夹 Function ShowFolderList(folderspec) temp = Request.ServerVariables("HTTP_REFERER") temp = Left(temp, Instrrev(temp, "/")) temp1 = Len(folderspec) - Len(server.MapPath("./")) -1 If temp1>0 Then temp1 = Right(folderspec, CInt(temp1)) + "" ElseIf temp1 = -1 Then temp1 = "" End If tempurl = temp + Replace(temp1, "", "/") uppath = "./" + Replace(temp1, "", "/") upfolderspec = fso.GetParentFolderName(folderspec&"") Set f = fso.GetFolder(folderspec) %> <script language="javascript"> function File(Name, Size, Type, DateCreated, DateLastAccessed, DateLastModified, Attributes) { this.Name = Name; this.Size = Size; this.Type = Type; this.DateCreated = DateCreated; this.DateLastAccessed = DateLastAccessed; this.DateLastModified = DateLastModified; this.Attributes = Attributes; } function Tree(id, name) { this.id = id; this.name = name; this.root = new Array(); this.length = 0; this.Add = function(file) { this.root.push(file); this.length += 1; } this.max = function(f1, f2, field) { switch( field ) { case "Name": return f1.Name.toLowerCase()>f2.Name.toLowerCase()? true:false; case "Size": return f1.Size>f2.Size? true:false; case "Type": //if (field == '???t?D') return false; return f1.Type>f2.Type? true:false; case "DateCreated": return f1.DateCreated>f2.DateCreated? true:false; case "DateLastAccessed": return f1.DateLastAccessed>f2.DateLastAccessed? true:false; case "DateLastModified": return f1.DateLastModified>f2.DateLastModified? true:false; case "Attributes": return f1.Attributes>f2.Attributes? true:false; default: return false; } } this.sort=function(field, order) { //order:desc asc //field:Name Size var len = this.root.length; if( len < 2 ) return; var tmp; for(var i=0; i<len-1; i++) { for(var j=i+1; j<len; j++) { if( order == "desc") { if( !this.max( this.root[i], this.root[j], field ) ) { tmp = this.root[i]; this.root[i] = this.root[j]; this.root[j] = tmp; } } else if ( order == "asc") { if( this.max( this.root[i], this.root[j], field ) ) { tmp = this.root[i]; this.root[i] = this.root[j]; this.root[j] = tmp; } } } } } } function fieldcode(field) { if (order == 'desc') { order = 'asc'; } else { order = 'desc'; } tree.sort(field, order); } function show() { //for (var i=0;i<form1.elements.length;i++){var e = form1.elements[i];if (e.type == "checkbox")e.checked = form1.chkall.checked;} str = '<table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr bgcolor="#EEEEEE"> <td><div align="center">操作<input type="checkbox" name="chkall" onclick=""></div></td> <td><div align="center"><a onclick="fieldcode('Name');show();" href=#>文件名</a></div></td> <td><div align="center"><a onclick="fieldcode('Size');show();" href=#>大小</a></div></td> <td><div align="center"><a onclick="fieldcode('Type');show();" href=#>类型</a></div></td> <td><div align="center"><a onclick="fieldcode('DateCreated');show();" href=#>创建时间</a></div></td> <td><div align="center"><a onclick="fieldcode('DateLastAccessed');show();" href=#>上次访问时间</a></div></td> <td><div align="center"><a onclick="fieldcode('DateLastModified');show();" href=#>上次修改时间</a></div></td> <td><div align="center"><a onclick="fieldcode('Attributes');show();" href=#>属性</a></div></td> </tr>'; var f; for(i=0;i<tree.length;i++) { f = tree.root[i]; str += '<tr bgcolor="#EEEEEE" onmouseover=this.bgColor='#F3F6FA'; onmouseout=this.bgColor='#EEEEEE';> <td><center><input type="checkbox" name="f" value="'+tree.id+"\\"+f.Name+'"></center></td> <td><a href="'+f.url+'">'+f.Name+'</a></td> <td>'+f.Size+'</td> <td>'+f.Type+'</td> <td>'+f.DateCreated+'</td> <td>'+f.DateLastAccessed+'</td> <td>'+f.DateLastModified+'</td> <td>'+f.Attributes+'</td> </tr>'; } str += '</table>'; eval(list).innerHTML = str; } var field = 'Name'; var order = 'desc'; var str; </script> <body onLoad="show()"> <form name="form1" method=post action=""> <span id="list"></span> </form> </body> <% Response.Write("<script language=javascript>"&vbcrlf) Response.Write("var tree = new Tree('"&jscode(f.path)&"','"&jscode(f.name)&"');"&vbcrlf) Set fc = f.SubFolders For Each f1 in fc Response.Write("tree.Add(new File('"&f1.name&"',"&f1.size&",'"&f1.Type&"','"&f1.DateCreated&"','"&f1.DateLastAccessed&"','"&f1.DateLastModified&"','"&f1.Attributes&"'));"&vbcrlf) Next set fc = f.Files For Each f1 in Fc Response.Write("tree.Add(new File('"&f1.name&"',"&f1.size&",'"&f1.Type&"','"&f1.DateCreated&"','"&f1.DateLastAccessed&"','"&f1.DateLastModified&"','"&f1.Attributes&"'));"&vbcrlf) Next Response.Write("</script>") End Function function jscode(s) jscode = replace(s,"","\\") end function %>

  推荐阅读

  ASP生成动态flash的工具与介绍

编者按:编程技术的发展真是日新月异。通过ASP等程序动态生成HTML网页似乎已不能算是最新科技。Macromedia公司的Flash技术自推出以来,已有2亿4千8百万用户,制作flash网站已是流行趋势。就像HTML页面可以用ASP动态>>>详细阅读


本文标题:web文件管理器的后续开发

地址:http://www.17bianji.com/kaifa2/ASP/32633.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)