天天看点

Dojo Toolkit 新增多文件上传类dojox.form.FileUploader

转载时请保留来源: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