转载时请保留来源:OurJS.cn 原文: http://www.ourjs.cn/show.php?id=464
Deft 是Dojo Toolkit的一个项目,本文介绍的多文件上传功能就是得益于它。
dojox.form.FileUploader类在页面内嵌入了一个隐藏的SWF文件,当你触发它时,会打开一个对话框,这个对话框支持多文件选择和文件类型过滤。
如果用户没有安装flash 9,则会显示一个标准的HTML file input 标签来代替它的flash界面。这个HTML表单同样支持多文件上传,不过是跟通常的多文件上传一样,多个input标签,每个标签只能选择一个文件。
这个工具的另一个优点是,允许用户自定义上传按钮的样式。
dojox.form.FileUploader将会包含在计划在9月份发布的Dojo Toolkit v1.2中。
dojox.form.FileUploader
dojox.form.FileUploader是一个简单的包装器类。它接受参数,并做一些侦测,决定是使用dojox.form.FileInputFlash类 还是 dojox.form.FileInputOverlay类。
以下是使用FileUploader的例子:
var uploader = new dojox.form.FileInputFlash({
uploadUrl:"http.localHost/FileUpload.php",
button:myButton,
uploadOnChange: false,
selectMultipleFiles: true,
fileMask: ["All Images", "*.jpg;*.jpeg;*.gif;*.png"],
degradable: true
});
这个类只有一个方法: upload()
有几个方法:
onChange - 当文件被选中时触发
onProgress - 提供当前的上传进度相关信息(只支持flash)
onComplete - 当文件上传完毕时触发
onError - 发生错误时触发,比如:找不文件
dojox.form.FileInputFlash(Flash模式)
FileInputFlash组件与dojox.embed.Flash一起加载。它显示时大小1px*1px,定位在左上角,是不可见的,当浏览器需要显示SWF时才会激活它。在初始化时,FileInputFlash使你的按钮与SWF内的浏览器方法连接起来,使得点击按钮就会打开对话框架。
dojox.form.FileInputOverlay(HTML模式)
dojox.form.FileInputOverlay API跟FileInputFlash 不同。主要有两点:
1. 它不会触发onProgree事件
2. 当 selectMultipleFiles = true时,用户不能选择多个文件,但是可以通过点击上传按钮添加文件上传列表。
要了解更多dojox.form.FileUploader,可访问:
http://www.sitepen.com/blog/2008/09/02/the-dojo-toolkit-multi-file-uploader/
http://trac.dojotoolkit.org/browser/deft/trunk/deft
http://archive.dojotoolkit.org/nightly/
转载时请保留来源:OurJS.cn 原文: http://www.ourjs.cn/show.php?id=464