上传页面代码: <html> <!-- #include file="conn.asp" --> <% typ = Request.QueryString("typ") lb = Request.QueryString("lb") %> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <mce:style type="text/css"><!-- a:hover{font-family:"verdana", "arial", "helvetica", "sans-serif";font-size:12px;color:#014CCC;text-decoration:underline;} h3{font-size:12px;font-weight:bold;line-height:24px;margin:0;padding:0 0 0 15px;} .vlist{text-align:center;padding:5px;} .vlist h3{background-image:none;overflow:hidden;height:20px;font-weight:bold;margin:0;padding:0;} .vlist h3 a{text-align:center;font-weight:bold;} h3 a:hover{text-align:center;font-size:12px;} .vlist a img{border:0px solid #75B000;background-image:url(../img/defaultpic.gif);background-repeat:no-repeat;background-position:center top;padding:3px;} .vlist a:hover img{border:0px solid #F90;background-color:#F90;padding:3px;} body { font: normal 11px auto "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; color: #4f6b72; } a { color: #c75f3e; } th { font: bold 11px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; color: #4f6b72; border-right: 1px solid #C1DAD7; border-bottom: 1px solid #C1DAD7; border-top: 1px solid #C1DAD7; letter-spacing: 2px; text-transform: uppercase; text-align: left; padding: 6px 6px 6px 12px; background: #CAE8EA url(/images/bg_header.jpg) no-repeat; } --></mce:style><style type="text/css" mce_bogus="1">a:hover{font-family:"verdana", "arial", "helvetica", "sans-serif";font-size:12px;color:#014CCC;text-decoration:underline;} h3{font-size:12px;font-weight:bold;line-height:24px;margin:0;padding:0 0 0 15px;} .vlist{text-align:center;padding:5px;} .vlist h3{background-image:none;overflow:hidden;height:20px;font-weight:bold;margin:0;padding:0;} .vlist h3 a{text-align:center;font-weight:bold;} h3 a:hover{text-align:center;font-size:12px;} .vlist a img{border:0px solid #75B000;background-image:url(../img/defaultpic.gif);background-repeat:no-repeat;background-position:center top;padding:3px;} .vlist a:hover img{border:0px solid #F90;background-color:#F90;padding:3px;} body { font: normal 11px auto "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; color: #4f6b72; } a { color: #c75f3e; } th { font: bold 11px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; color: #4f6b72; border-right: 1px solid #C1DAD7; border-bottom: 1px solid #C1DAD7; border-top: 1px solid #C1DAD7; letter-spacing: 2px; text-transform: uppercase; text-align: left; padding: 6px 6px 6px 12px; background: #CAE8EA url(/images/bg_header.jpg) no-repeat; }</style> <body> <mce:script language="javascript"><!-- var oXMLDoc = new ActiveXObject("Microsoft.XMLDOM"); //创建'MSXML'对象 var theUniqueID= 0; var iTimerID=null; //这个变量是作定时器的ID var flg=0 //让数据提交的同时执行显示进度条的函数 function UploadData() { theUniqueID = (new Date()).getTime() % 1000000000; // 清除原始数据 PercentDone.style.width = "0%"; ElapsedTime.innerHTML = ""; TimeLeft.innerHTML = ""; SizeCompleted.innerHTML = ""; TotalSize.innerHTML = ""; TransferRate.innerHTML = ""; document.myform.action = "admin_upload.asp?typ=<%=typ%>&lb=<%=lb%>&ProgressID=" + theUniqueID; //处理上传数据的程序 //将提交的数据放在一个名字是upload隐藏的iframe里面处理,这样提交的页面就不会跳转到处理数据的页 if(document.myform.lb.value=="-1") alert("sdfsdf"); else { document.myform.target="upload" document.myform.submit(); //提交表单 } ProgressBar(); //开始执行反映上传情况的函数 } function ProgressBar() { sURL = "Progress_Xml.asp?ProgressID=" + theUniqueID + "&temp="+Math.random(); //获取上传状态数据的地址 oXMLDoc.async = true; oXMLDoc.onreadystatechange = Function( "fnLoadComplete();" ); oXMLDoc.load( sURL ); } function fnLoadComplete() { var iReadyState; try { iReadyState = oXMLDoc.readyState; } catch(e) { return; } if( iReadyState != 4 ) return; if( oXMLDoc == null || oXMLDoc.xml == "" ) { window.status = 'Xml load fault'; return; } var oRoot = oXMLDoc.documentElement; //获取返回xml数据的根节点 if(oRoot != null) { if (oRoot.selectSingleNode("ErrorMessage") == null) { var readyState = oRoot.selectSingleNode("ReadyState").text; // 如果还没初始化完成,继续 if ( readyState == "uninitialized" ) { iTimerID = setTimeout("ProgressBar()", 1000); } // 上传进行中 else if ( readyState == "loading" ) //文件上传结束就取消定时器 { bar1.style.display = 'block'; //让显示上传进度显示的层的可见 PercentDone.style.width = oRoot.selectSingleNode("Percentage").text; //设置进度条的百分比例 //根据返回的数据在客户端显示 ElapsedTime.innerHTML = oRoot.selectSingleNode("ElapsedTime").text; //显示剩余时间 TimeLeft.innerHTML = oRoot.selectSingleNode("TimeLeft").text; //显示剩余时间 SizeCompleted.innerHTML = oRoot.selectSingleNode("SizeCompleted").text; //已上传数据大小 TotalSize.innerHTML = oRoot.selectSingleNode("TotalSize").text; //总大小 TransferRate.innerHTML=oRoot.selectSingleNode("TransferRate").text; //传输速率 //这里设定时间间隔是0.5秒,你也可以根据你的情况修改获取数据时间间隔 iTimerID = setTimeout("ProgressBar()", 100); } // 上传结束 else if ( readyState == "loaded" ) { PercentDone.style.width = "100%"; //设置进度条的百分比例 if (iTimerID != null) clearTimeout(iTimerID) iTimerID = null; alert("上传结束,服务器处理中..."); } // 上传结束 else { if (iTimerID != null) clearTimeout(iTimerID) iTimerID = null; alert("上传结束"); } } else { alert(oRoot.selectSingleNode("ErrorMessage").text); } } } function CacelUpload() { upload.location.href = "about:blank"; if (iTimerID != null) clearTimeout(iTimerID) iTimerID = null; bar1.style.display = ''; } // --></mce:script> <% typ = Request.QueryString("typ") set rs=server.CreateObject("adodb.recordset") 'sqlstr="SELECT 视频资源.视频名称,视频资源.视频路径,资源类别.类别名称 from 视频资源 left join 资源类别 on 视频资源.类别 = 资源类别.类别ID where 视频资源.类别 like 'A%' order by 类别名称,视频资源.视频名称" 'sqlstr="SELECT * FROM 资源类别 Order by 类别ID" If typ = 1 or typ = "" Then sqlstr="SELECT * FROM 资源类别 where 类别ID Like 'A%' or 类别ID Like 'B%' or 类别ID Like 'C%' Order by 类别ID" End If If typ = 2 Then sqlstr="SELECT * FROM 资源类别 where 类别ID Like 'D%' Order by 类别ID" End If If typ = 3 Then sqlstr="SELECT * FROM 资源类别 where 类别ID Like 'E%' Order by 类别ID" End If 'sqlstr="SELECT * FROM 资源类别 where 类别ID Like 'A%' or 类别ID Like 'B%' or 类别ID Like 'C%' Order by 类别ID" 'Response.Write("sddfsf"&lb&"<br>") rs.open sqlstr,conn,1,3 %> <form name="myform" method="post" action="admin_upload.asp?typ=<%=typ%>&lb=<%=lb%>" enctype="multipart/form-data" target="upload"> 注意事项:请上传小于1G的文件<BR> <table> <tr> <td>文件类别:</td> <td> <select name="lb" onChange="document.myform.action='admin_uploadFiles.asp?typ=<%=typ%>&lb='+this.value;document.myform.target='_self';document.myform.submit();"> <option value="-1" >--请选择--</option> <% Do while not rs.Eof %> <option value="<%=rs("类别ID")%>" <% If lb = rs("类别ID") Then%> selected="selected" <%end if %> > <%=rs("类别名称")%> </option> <% rs.MoveNext Loop %> </select> </td> </tr> <tr> <td>文件路径:</td> <td><input type="file" name="filefield1"></td> </tr> </table> <input type="button" value="上传" onClick="UploadData()"> <input type="button" value="取消上传" onClick="CacelUpload()"><br> <div id=bar1 style="display:" mce_style="display:"> <table border="0" width="100%"> <tr> <td><b>传送:</b></td> </tr> <tr bgcolor="#999999"> <td> <table border="0" width="" cellspacing="1" bgcolor="#0033FF" id="PercentDone"> <tr> <td> </td> </tr> </table> </td> </tr> <tr> <td> <table border="0" cellpadding="0" cellspacing="0"> <tr><td>总 大 小: </td><td id="TotalSize"></td></tr> <tr><td>已经上传: </td><td id="SizeCompleted"></td></tr> <tr><td>平均速率:</td><td id="TransferRate"></td></tr> <tr><td>使用时间:</td><td id="ElapsedTime"></td></tr> <tr><td>剩余时间:</td><td id="TimeLeft"></td></tr> </table> </td> </tr> </table> </div> <iframe name="upload" style="width:100%"></iframe> </form> </body> </html> 处理上传文件代码: <%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%> <!-- #include file="Upload.asp" --> <!-- #include file="conn.asp" --> <mce:style type="text/css"><!-- a:hover{font-family:"verdana", "arial", "helvetica", "sans-serif";font-size:12px;color:#014CCC;text-decoration:underline;} h3{font-size:12px;font-weight:bold;line-height:24px;margin:0;padding:0 0 0 15px;} .vlist{text-align:center;padding:5px;} .vlist h3{background-image:none;overflow:hidden;height:20px;font-weight:bold;margin:0;padding:0;} .vlist h3 a{text-align:center;font-weight:bold;} h3 a:hover{text-align:center;font-size:12px;} .vlist a img{border:0px solid #75B000;background-image:url(../img/defaultpic.gif);background-repeat:no-repeat;background-position:center top;padding:3px;} .vlist a:hover img{border:0px solid #F90;background-color:#F90;padding:3px;} body { font: normal 15px auto "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; color: #4f6b72; } a { color: #c75f3e; } th { font: bold 11px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; color: #4f6b72; border-right: 1px solid #C1DAD7; border-bottom: 1px solid #C1DAD7; border-top: 1px solid #C1DAD7; letter-spacing: 2px; text-transform: uppercase; text-align: left; padding: 6px 6px 6px 12px; background: #CAE8EA url(/images/bg_header.jpg) no-repeat; } --></mce:style><style type="text/css" mce_bogus="1">a:hover{font-family:"verdana", "arial", "helvetica", "sans-serif";font-size:12px;color:#014CCC;text-decoration:underline;} h3{font-size:12px;font-weight:bold;line-height:24px;margin:0;padding:0 0 0 15px;} .vlist{text-align:center;padding:5px;} .vlist h3{background-image:none;overflow:hidden;height:20px;font-weight:bold;margin:0;padding:0;} .vlist h3 a{text-align:center;font-weight:bold;} h3 a:hover{text-align:center;font-size:12px;} .vlist a img{border:0px solid #75B000;background-image:url(../img/defaultpic.gif);background-repeat:no-repeat;background-position:center top;padding:3px;} .vlist a:hover img{border:0px solid #F90;background-color:#F90;padding:3px;} body { font: normal 15px auto "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; color: #4f6b72; } a { color: #c75f3e; } th { font: bold 11px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; color: #4f6b72; border-right: 1px solid #C1DAD7; border-bottom: 1px solid #C1DAD7; border-top: 1px solid #C1DAD7; letter-spacing: 2px; text-transform: uppercase; text-align: left; padding: 6px 6px 6px 12px; background: #CAE8EA url(/images/bg_header.jpg) no-repeat; }</style> <% Server.ScriptTimeout = 9999 typ = Request.QueryString("typ") '====================================================================== 'lb = Request.form("lb") lb = Request.QueryString("lb") '========================================================= If typ = 1 Then path = "movie" End If If typ = 2 Then path = "courseware" End If 'path = "movie" set Upload = new DoteyUpload Upload.ProgressID = Request.QueryString("ProgressID") Upload.SaveTo(path) if Upload.ErrMsg <> "" then Response.Write(Upload.ErrMsg) Response.End() end if if Upload.Files.Count > 0 then Items = Upload.Files.Items end if Response.Write("您已上传 " & Upload.Files.Count & " 个文件到: " & path & "<hr>") for each File in Upload.Files.Items nm=File.FileName Response.Write("文件名: " & File.FileName & "<br>") Response.Write("文件大小: " & File.FileSize/1024 & " KB<br>") Response.Write("文件类型: " & File.FileType & "<br>") Response.Write("客户端路径: " & File.FilePath & "<br>") Response.Write("<hr>") next ph = "/"&path&"/"&nm If typ = 1 Then inSql = "Insert into 视频资源(视频名称,视频路径,类别,上传时间)values('"&nm&"','"&ph&"','"&lb&"','"&date()&"')" 'inSql = "Insert into 视频资源(视频名称,视频路径)values('"&nm&"','"&ph&"')" End If If typ = 2 Then inSql = "Insert into 课件资源(课件名称,课件路径,类别,上传时间)values('"&nm&"','"&ph&"','"&lb&"','"&date()&"')" End If 'response.Write(inSql) 'inSql = "Insert into 视频资源(视频名称,视频路径)values('"&nm&"','"&ph&"')" conn.execute(inSql) Response.Write("<br>") %> =========================================================== 关键代码: 上传页面: <td><input type="file" name="filefield1"></td> 处理页面:<% Server.ScriptTimeout = 9999 typ = Request.QueryString("typ") '====================================================================== 'lb = Request.form("lb") lb = Request.QueryString("lb") '========================================================= If typ = 1 Then path = "movie" End If If typ = 2 Then path = "courseware" End If 'path = "movie" set Upload = new DoteyUpload Upload.ProgressID = Request.QueryString("ProgressID") Upload.SaveTo(path) if Upload.ErrMsg <> "" then Response.Write(Upload.ErrMsg) Response.End() end if if Upload.Files.Count > 0 then Items = Upload.Files.Items end if Response.Write("您已上传 " & Upload.Files.Count & " 个文件到: " & path & "<hr>") for each File in Upload.Files.Items nm=File.FileName Response.Write("文件名: " & File.FileName & "<br>") Response.Write("文件大小: " & File.FileSize/1024 & " KB<br>") Response.Write("文件类型: " & File.FileType & "<br>") Response.Write("客户端路径: " & File.FilePath & "<br>") Response.Write("<hr>") next %>