最后更新:
2006-08-25 21:22纯Javascript打造的ASP上传组件,支持多文件上传、进度条、数据库存放和文件系统存放
组件下载地址(为方便版本同步,未在此处上传附件):
http://www.zope.org/Members/Rimifon/FyUpload.sct(右键下载)
相关说明:
有组件上传方式请右键"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("保存目录") //默认为当前目录
简化文本元素数据读取:Upload.Form(输入框名称); // 将Upload.Field.输入框名称.Value简化为习惯性的方法,并可解决vbs调用时“不存在属性”的错误。
==============================================演示:
http://www.fengyun.org/Test/NetDisk简要代码示例:
Set Upload = Server.CreateObject("Rimifon.Upload")
Upload.ReadForm 204800
'存放文件系统:
Upload.SaveFile "Upload"
'存放数据库:
'Rs(0).AppendChunk Upload.Form("file1")
Upload.Dispose
Set Upload = Nothing
更新记录:
[06-07-31] 将Upload.Field["Test"].Value简化为Upload.Form("Test")
[06-08-01] 修改Upload.Form方法,如果是文件则返回Upload.Field["Test"]对象
[06-08-02] 修改Upload.Form方法,后面不加属性则返回Value值
[06-08-10] 指定了注册时的clsid,以便能生成正确的“通用类型库”
[06-08-23] 修正了vbs不能枚举表单元素的Bug
指定了注册时的clsid,以便能正确生成“通用类型库”。生成通用类型库后,使用相关编辑工具能智能感知组件的内置属性和方法。
生成通用类型库的方法:
右键组件 - 通用类型库
完成后会生成一个tlb文件。“通用类型库”一般来说用处不大,仅仅是好玩 :D
下图是FrontPage 2003中的截屏:
2006 - 11 - 30 更新:支持单个文件以指定文件名保存到指定位置。
<%@language="Javascript" codepage="936"%><html><head><%
var arrInfo = new Array;
if(Request.ServerVariables("Request_Method").Item == "POST")
{
var Upload = GetObject("Script:" + Server.MapPath("FyUpload.sct"));
Upload.ReadForm(200 * 1024);
/* 指定file_01的保存位置为C:\,文件名为上传前的文件名 */
Upload.Field.file_01.SavePath = "C:\\" + Upload.Field.file_01.SourceName;
Upload.SaveFile(); // 未指定保存位置的文件使用默认保存路径。
for(var i in Upload.Field)
{
if(Upload.Field[i].Message) arrInfo.push(Upload.Field[i].Message);
}
Upload.Dispose();
}
%><title>文件上传</title></head><body>
<form method="post" enctype="multipart/form-data">
<p><%=arrInfo.join("<br>").fontcolor("red")%></p>
<input type="file" name="file_01"><br>
<input type="file" name="file_02"><br>
<input type="file" name="file_03"><br>
<input type="submit">
</form></body></html>
posted on 2007-06-05 16:51
汪杰 阅读(282)
评论(0) 编辑 收藏 引用 所属分类:
javascript