·软件知识库 ·模板素材库
注册 | 登录

您所在的位置: INDEX > asp > aspupload文件重命名及上传进度条的解决方法附代码

aspupload文件重命名及上传进度条的解决方法附代码

许杰 Sun Jul 05 12:01:51 CST 2015 字号:

发现还没有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>


『相关搜索』
版本信息:kms v1.3 鄂ICP备09005333号