纯Javascript打造的ASP组件|无组件上传,支持多文件及进度条

4/11/2009来源:ASP实例人气:17751

组件上传方式请右键"FyUpload.sct"注册,然后可以使用:
    Server.CreateObject("Rimifon.Upload")
创建对象。
无组件上传方式请使用
    GetObject("script:" + 组件地址)
创建对象,组件地址为硬盘绝对路径,也可以使用http完整路径。
==============================================
属性和方法说明:
  设置页面字符编码:Upload.Charset = "UTF-8" //默认为gb2312编码。
  文件大小限制:Upload.MaxSize = 1024 * 512 //设置上传大小不超过 512 kb,参数为零时不限制上传文件大小(默认为 0)。
  文件类型限制:Upload.Filter = "rar|zip|txt|gif|jpg|bmp|htm|html|swf|mht"; //(默认值)设置允许上传的文档类型,不限制上传文件类型则使用空值。
  获得上传文件的客户端路径:Upload.Field.输入框名称.FilePath
  获得上传文件的文件名称:Upload.Field.输入框名称.SourceName
  获得上传文件后保存的文件名:Upload.Field.输入框名称.FileName
  获得上传文件的MimeType:Upload.Field.输入框名称.FileType
  获得上传文件实际大小:Upload.Field.输入框名称.FileSize
  获得上传文件的受限信息:Upload.Field.输入框名称.Message
  获得表单数据:Upload.Field.输入框名称.Value //如果是文件则返回文件的Unicode编码内容
  指定上传缓冲区大小并读取上传数据:Upload.ReadForm(缓冲大小[bytes], 参数二) //默认为全部缓冲,推荐在200k以下(可解决2003不能上传大文件的问题);提供参数二可为上传生成进度条的application数据。
  保存文件到指定目录:Upload.SaveFile("保存目录") //默认为当前目录
==============================================

演示:http://www.fengyun.org/Test/NetDisk

普通演示代码如下:
<%@language=javascript%><html><head>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312">
<title>風雲JS上传组件</title><%
var Upload,Info,undefined;
if(Request.ServerVariables("Request_Method") == "POST")
{
 //Upload = Server.CreateObject("Rimifon.Upload");
 Upload = GetObject("script:http://www.zope.org/Members/Rimifon/FyUpload.sct#Upload");
 Upload.MaxSize = 1024 * 512;
 Upload.ReadForm(204800);
 Upload.SaveFile(".");
 var field = new Array;
 field.push("允许上传的文档:" + (Upload.Filter?Upload.Filter:"所有文档"));
 field.push("单个文件最大值:" + (Upload.MaxSize?(Upload.MaxSize/1024/1024).toFixed(1)+" Mb":"不限文件大小"));
 field.push("============================================================");
 for(var x in Upload.Field)
 {
  if(Upload.Field[x].FilePath)
  {
   field.push(x+":" + (Upload.Field[x].Message?
    Upload.Field[x].FilePath+"(" + Upload.Field[x].Message + ")":
    "<a target=_blank href=" + Upload.Field[x].FileName + ">" +
    Upload.Field[x].FilePath + "</a> (" + Upload.Field[x].FileSize + " bytes)"));
  }
  else
  {
   field.push(x+":"+Upload.Field[x].Value);
  }
 }
 Upload.Dispose();
 Upload = undefined;
 Info = field.join("<br>");
}%></head><body>
<font color="red"><%=Info%></font>
<form method=post enctype="multipart/form-data">
field:<input name=field value=testString><br>
upFile1:<input name="upFile1" type="file"><br>
cnfield:<input name=cnfield value=一中文测试><br>
upFile2:<input name="upFile2" type="file"><br>
otherfield:<input name=otherfield value=dsihf83><br>
<input type="submit"></form></body></html>

 

请注意:下面的附件中,组件未必是最新的,最新组件的地址是: (文档以utf-8编码保存)
http://www.zope.org/Members/Rimifon/FyUpload.sct