|
发现还没有aspupload这个组件的,这两样功能的解决方案,现把我的改进方案写在这里!谢谢 关于aspupload上传组件,文件重命名,进度条的问题解决方案! 共用到4个文件,分别是1.asp,2.asp,bar.asp,framebar.asp 运行第一个文件:1.asp,执行上传操作! 复制代码 代码如下: <% '''进度条 dim SPid,PID,barref Set UploadProgress = Server.CreateObject("Persits.UploadProgress") SPid = UploadProgress.CreateProgressID() PID = "PID=" & SPid barref = "framebar.asp?to=10&" & PID %> <SCRIPT language="javascript"> <!-- function ShowProgress() //加载进度条 { strAppVersion = navigator.appVersion; if (document.upfile.filename.value != "") { if (strAppVersion.indexOf('MSIE') != -1 && strAppVersion.substr(strAppVersion.indexOf('MSIE')+5,1) > 4) { winstyle = "dialogWidth=375px; dialogHeight:175px; center:yes;status:no"; window.showModelessDialog('<% = barref %>&b=IE',window,winstyle); } else { window.open('<% = barref %>&b=NN','','width=370,height=165', true); } } return true; } function isPic(){ var temp; var ExtList = ".jpg.gif.bmp.png.swf";//客户端,检测文件后缀名,省得上传完成后,才报文件类型错误! var filename = upfile.filename.value; var the_ext = filename.substr(filename.lastIndexOf(".")+1).toLowerCase(); if (ExtList.indexOf(the_ext)==-1){ alert("不是图片,请选择图片文件!"); return false; } return true; } //--> </SCRIPT> <html> <head></head> <body> <form method="post"enctype="multipart/form-data"action="2.asp?<% = PID %>"name="upfile"OnSubmit="return ShowProgress();"> 选择要上传的文件:<br> <input type=file name="filename"><br> <input type=submit value="上传" onclick="return isPic()"> </form>
</body> </html>
2.asp 复制代码 代码如下: <%
Set Upload = Server.CreateObject("Persits.Upload")
' Prevent overwriting Upload.OverwriteFiles = False
' We use memory uploads, 文件大小限制 ,单位:b Upload.SetMaxSize 1*1024*1024*1024, true
if Request.QueryString("PID") = "" then Upload.ProgressID="010D60EB00C5AA4B" else Upload.ProgressID=Request.QueryString("PID") end if
On Error Resume Next
' Save to memory 保存到内存 Upload.Save
If Err.Number = 8 Then Response.Write "文件大于1G" End If
'为使文件不重名,用系统时间+随机数,作为文件名 Dim ranNum randomize ranNum=int(999*rnd) CreateName=year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&ranNum NewName = CreateName '保存文件路径 articlepath = Server.MapPath("upload1")
For Each File in Upload.Files FileExt=Lcase(replace(File.ext,".","")) '服务器端判断文件类型,动网论坛的判断方式 If CheckFileExt(FileExt)=false then Response.write "文件格式不正确,或不能为空 [ <a href=# onclick=history.go(-1)>重新上传</a> ]"
else File.SaveAs articlepath & "/" & NewName & File.ext Response.Write "New name: " & File.FileName & "<BR>" End If
Next
%> <% '服务器端判断文件类型,动网论坛的判断方式 Private Function CheckFileExt(FileExt)
If FileExt="" or IsEmpty(FileExt) Then CheckFileExt=false Exit Function End If If Lcase(FileExt)="asp" or Lcase(FileExt)="asa" or Lcase(FileExt)="aspx" then CheckFileExt=false Exit Function End If If Lcase(FileExt)="gif" or Lcase(FileExt)="jpg" or Lcase(FileExt)="png" or Lcase(FileExt)="swf" or Lcase(FileExt)="bmp" then CheckFileExt=true Exit Function Else CheckFileExt=false End If End Function %>
bar.asp 复制代码 代码如下: <% Response.Expires = -1 PID = Request("PID") TimeO = Request("to") Set UploadProgress = Server.CreateObject("Persits.UploadProgress") format = "<br><CENTER><b>正在上传,请耐心等待...</b></CENTER><br>%T%t%B3%T 速度:(%S/秒) 估计剩余时间:%R %r%U / %V(%P)%l%t" bar_content = UploadProgress.FormatProgress(PID, TimeO, "#00007F", format) If "" = bar_content Then %> <HTML> <HEAD> <TITLE>Upload Finished</TITLE> <SCRIPT LANGUAGE="JavaScript"> function CloseMe() { window.parent.close(); return true; } </SCRIPT> </HEAD> <BODY OnLoad="CloseMe()" BGCOLOR="menu"> </BODY> </HTML> <% Else ' Not finished yet %> <HTML> <HEAD> <meta HTTP-EQUIV="Refresh" CONTENT="1;URL=<% Response.Write Request.ServerVariables("URL") Response.Write "?to=" & TimeO & "&PID=" & PID %>"> <TITLE>Uploading Files...</TITLE> <style type="text/css"> body,td {font-family:Tahoma; font-size: 8pt } td.spread {font-size: 6pt; line-height:6pt } td.brick {font-size:6pt; height:12px} </style> </HEAD> <BODY BGCOLOR="menu" topmargin=0> <% = bar_content %> </BODY> </HTML> <% End If %>
framebar.asp 复制代码 代码如下: <%@EnableSessionState=False%> <% Response.Expires = -1 %> <title>正在上传--</title> <style type='text/css'>td {font-family:Tahoma; font-size: 8pt }</style> <BODY BGCOLOR="menu" scroll="NO" frameborder="NO" status="no" style="border:0px;"> <script language="JavaScript"> <!-- function Stopupload() { if (typeof(window.opener)!="undefined"){ try{ window.opener.document.execCommand("stop"); } catch(e){} } else if(typeof(window.dialogArguments)!="undefined"){ try{ window.dialogArguments.document.execCommand("stop"); } catch(e){} } window.close(); } //--> </script> <IFRAME src="bar.asp?PID=<%= Request("PID") & "&to=" & Request("to") %>" title="Uploading" noresize scrolling=no frameborder=0 framespacing=10 width=369 height=115></IFRAME> <TABLE BORDER="0" WIDTH="100%" cellpadding="2" cellspacing="0"> <TR><TD ALIGN="center"><button onclick="Stopupload()" style="font-size:12px;">取消上传</button> </TD></TR> </TABLE> </BODY> </HTML>
发现还没有aspupload这个组件的,这两样功能的解决方案,现把我的改进方案写在这里!谢谢 关于aspupload上传组件,文件重命名,进度条的问题解决方案! 共用到4个文件,分别是1.asp,2.asp,bar.asp,framebar.asp 运行第一个文件:1.asp,执行上传操作! 复制代码 代码如下: <% '''进度条 dim SPid,PID,barref Set UploadProgress = Server.CreateObject("Persits.UploadProgress") SPid = UploadProgress.CreateProgressID() PID = "PID=" & SPid barref = "framebar.asp?to=10&" & PID %> <SCRIPT language="javascript"> <!-- function ShowProgress() //加载进度条 { strAppVersion = navigator.appVersion; if (document.upfile.filename.value != "") { if (strAppVersion.indexOf('MSIE') != -1 && strAppVersion.substr(strAppVersion.indexOf('MSIE')+5,1) > 4) { winstyle = "dialogWidth=375px; dialogHeight:175px; center:yes;status:no"; window.showModelessDialog('<% = barref %>&b=IE',window,winstyle); } else { window.open('<% = barref %>&b=NN','','width=370,height=165', true); } } return true; } function isPic(){ var temp; var ExtList = ".jpg.gif.bmp.png.swf";//客户端,检测文件后缀名,省得上传完成后,才报文件类型错误! var filename = upfile.filename.value; var the_ext = filename.substr(filename.lastIndexOf(".")+1).toLowerCase(); if (ExtList.indexOf(the_ext)==-1){ alert("不是图片,请选择图片文件!"); return false; } return true; } //--> </SCRIPT> <html> <head></head> <body> <form method="post"enctype="multipart/form-data"action="2.asp?<% = PID %>"name="upfile"OnSubmit="return ShowProgress();"> 选择要上传的文件:<br> <input type=file name="filename"><br> <input type=submit value="上传" onclick="return isPic()"> </form>
</body> </html>
2.asp 复制代码 代码如下: <%
Set Upload = Server.CreateObject("Persits.Upload")
' Prevent overwriting Upload.OverwriteFiles = False
' We use memory uploads, 文件大小限制 ,单位:b Upload.SetMaxSize 1*1024*1024*1024, true
if Request.QueryString("PID") = "" then Upload.ProgressID="010D60EB00C5AA4B" else Upload.ProgressID=Request.QueryString("PID") end if
On Error Resume Next
' Save to memory 保存到内存 Upload.Save
If Err.Number = 8 Then Response.Write "文件大于1G" End If
'为使文件不重名,用系统时间+随机数,作为文件名 Dim ranNum randomize ranNum=int(999*rnd) CreateName=year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&ranNum NewName = CreateName '保存文件路径 articlepath = Server.MapPath("upload1")
For Each File in Upload.Files FileExt=Lcase(replace(File.ext,".","")) '服务器端判断文件类型,动网论坛的判断方式 If CheckFileExt(FileExt)=false then Response.write "文件格式不正确,或不能为空 [ <a href=# onclick=history.go(-1)>重新上传</a> ]"
else File.SaveAs articlepath & "/" & NewName & File.ext Response.Write "New name: " & File.FileName & "<BR>" End If
Next
%> <% '服务器端判断文件类型,动网论坛的判断方式 Private Function CheckFileExt(FileExt)
If FileExt="" or IsEmpty(FileExt) Then CheckFileExt=false Exit Function End If If Lcase(FileExt)="asp" or Lcase(FileExt)="asa" or Lcase(FileExt)="aspx" then CheckFileExt=false Exit Function End If If Lcase(FileExt)="gif" or Lcase(FileExt)="jpg" or Lcase(FileExt)="png" or Lcase(FileExt)="swf" or Lcase(FileExt)="bmp" then CheckFileExt=true Exit Function Else CheckFileExt=false End If End Function %>
bar.asp 复制代码 代码如下: <% Response.Expires = -1 PID = Request("PID") TimeO = Request("to") Set UploadProgress = Server.CreateObject("Persits.UploadProgress") format = "<br><CENTER><b>正在上传,请耐心等待...</b></CENTER><br>%T%t%B3%T 速度:(%S/秒) 估计剩余时间:%R %r%U / %V(%P)%l%t" bar_content = UploadProgress.FormatProgress(PID, TimeO, "#00007F", format) If "" = bar_content Then %> <HTML> <HEAD> <TITLE>Upload Finished</TITLE> <SCRIPT LANGUAGE="JavaScript"> function CloseMe() { window.parent.close(); return true; } </SCRIPT> </HEAD> <BODY OnLoad="CloseMe()" BGCOLOR="menu"> </BODY> </HTML> <% Else ' Not finished yet %> <HTML> <HEAD> <meta HTTP-EQUIV="Refresh" CONTENT="1;URL=<% Response.Write Request.ServerVariables("URL") Response.Write "?to=" & TimeO & "&PID=" & PID %>"> <TITLE>Uploading Files...</TITLE> <style type="text/css"> body,td {font-family:Tahoma; font-size: 8pt } td.spread {font-size: 6pt; line-height:6pt } td.brick {font-size:6pt; height:12px} </style> </HEAD> <BODY BGCOLOR="menu" topmargin=0> <% = bar_content %> </BODY> </HTML> <% End If %>
framebar.asp 复制代码 代码如下: <%@EnableSessionState=False%> <% Response.Expires = -1 %> <title>正在上传--</title> <style type='text/css'>td {font-family:Tahoma; font-size: 8pt }</style> <BODY BGCOLOR="menu" scroll="NO" frameborder="NO" status="no" style="border:0px;"> <script language="JavaScript"> <!-- function Stopupload() { if (typeof(window.opener)!="undefined"){ try{ window.opener.document.execCommand("stop"); } catch(e){} } else if(typeof(window.dialogArguments)!="undefined"){ try{ window.dialogArguments.document.execCommand("stop"); } catch(e){} } window.close(); } //--> </script> <IFRAME src="bar.asp?PID=<%= Request("PID") & "&to=" & Request("to") %>" title="Uploading" noresize scrolling=no frameborder=0 framespacing=10 width=369 height=115></IFRAME> <TABLE BORDER="0" WIDTH="100%" cellpadding="2" cellspacing="0"> <TR><TD ALIGN="center"><button onclick="Stopupload()" style="font-size:12px;">取消上传</button> </TD></TR> </TABLE> </BODY> </HTML>
|
|