首页 > 编程 > .NET > 正文

asp.net 简便无刷新文件上传系统

2024-07-10 12:41:27
字体:
来源:转载
供稿:网友
ps:flash实现的效果是好得多,但这不是我研究的范围,也没什么可比性。

兼容:ie6/7/8, firefox 3.5.5, opera 10.01, safari 4.0.3, chrome 3.0
效果预览
文件上传
选择文件重命名操作状态
重置选择文件
重置选择文件
重置选择文件

ps:由于需要后台,要测试系统请下载实例测试。
ps2:在完整实例文件中,还有一个文件属性查看实例。

程序说明

【upload】

程序中最重要的方法就是upload了,调用它就可以进行无刷新上传。
upload的过程是这样的,首先用stop方法停止上一次上传,并判断是否选择文件。
然后分别调用_setIframe,_setForm和_setInput,生成需要的iframe,form和input。

如果设置了timeout属性的话,会自动设置计时器:
代码如下:
if ( this.timeout > 0 ) {
this._timer = setTimeout( $$F.bind(this._timeout, this), this.timeout * 1000 );
}

ps:经测试,小于0的延时时间,ie会取消执行,而其他浏览器会当成0执行。

程序有一个_sending属性用来判断上传状态。
在stop(停止),dispose(销毁),_finis(完成),_timeout(超时)时会把它设为false。
而在上传开始前要把它设置为true。

最后提交表单就开始上传了。

【iframe】

程序使用_setIframe函数来创建无刷新需要的iframe。

由于ie中iframe的name不能修改的问题,要这样创建iframe:
代码如下:
var iframename = "QUICKUPLOAD_" + QuickUpload._counter++,
iframe = document.createElement( $$B.ie ? "<iframe name=/"" + iframename + "/">" : "iframe");
iframe.name = iframename;
iframe.style.display = "none";

ps:关于iframe的name的问题参考这里的iframe部分。
ie8已经可以修改name了,但在非标准(怪辟)模式下还是不能修改。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表