asfman
android developer
posts - 90,  comments - 213,  trackbacks - 0
風雲 ASP 组件|无组件上传

最后更新: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 更新:支持单个文件以指定文件名保存到指定位置。

Code:

<%@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].MessagearrInfo.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 汪杰 阅读(273) 评论(0)  编辑 收藏 引用 所属分类: javascript
只有注册用户登录后才能发表评论。

<2024年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用链接

留言簿(15)

随笔分类(1)

随笔档案(90)

文章分类(727)

文章档案(712)

相册

收藏夹

http://blog.csdn.net/prodigynonsense

友情链接

最新随笔

搜索

  •  

积分与排名

  • 积分 - 457940
  • 排名 - 6

最新随笔

最新评论

阅读排行榜

评论排行榜