属性:

uploader : uploadify.swf 文件的相对路径,该swf文件是一个带有文字BROWSE的按钮,点击后淡出打开文件对话框,默认值:uploadify.swf。 
script :   后台处理程序的相对路径 。默认值:uploadify.php 
checkScript :用来判断上传选择的文件在服务器是否存在的后台处理程序的相对路径 
fileDataName :设置一个名字,在服务器处理程序中根据该名字来取上传文件的数据。默认为Filedata 
method : 提交方式Post 或Get 默认为Post 
scriptAccess :flash脚本文件的访问模式,如果在本地测试设置为always,默认值:sameDomain  
folder :  上传文件存放的目录 。 
queueID : 文件队列的ID,该ID与存放文件队列的div的ID一致。 
queueSizeLimit : 当允许多文件生成时,设置选择文件的个数,默认值:999 。 
multi : 设置为true时可以上传多个文件。 
auto : 设置为true当选择文件后就直接上传了,为false需要点击上传按钮才上传 。 
fileDesc : 这个属性值必须设置fileExt属性后才有效,用来设置选择文件对话框中的提示文本,如设置fileDesc为“请选择rar doc pdf文件”

fileExt : 设置可以选择的文件的类型,格式如:'*.doc;*.pdf;*.rar' 。 
sizeLimit : 上传文件的大小限制 。 
simUploadLimit : 允许同时上传的个数 默认值:1 。 
buttonText : 浏览按钮的文本,默认值:BROWSE 。 
buttonImg : 浏览按钮的图片的路径 。 
hideButton : 设置为true则隐藏浏览按钮的图片 。 
rollover : 值为true和false,设置为true时当鼠标移到浏览按钮上时有反转效果。 
width : 设置浏览按钮的宽度 ,默认值:110。 
height : 设置浏览按钮的高度 ,默认值:30。 
wmode : 设置该项为transparent 可以使浏览按钮的flash背景文件透明,并且flash文件会被置为页面的最高层。 默认值:opaque 。 
cancelImg :选择文件到文件队列中后的每一个文件上的关闭按钮图标

事件:

onInit : 做一些初始化的工作

onSelect :选择文件时触发,该函数有三个参数

event:事件对象。 queueID:文件的唯一标识,由6为随机字符组成。 fileObj:选择的文件对象,有name、size、creationDate、modificationDate、type 5个属性。

onSelectOnce :在单文件或多文件上传时,选择文件时触发。该函数有两个参数event,data,data对象有以下几个属性:

•fileCount:选择文件的总数。 
•filesSelected:同时选择文件的个数,如果一次选择了3个文件该属性值为3。 
•filesReplaced:如果文件队列中已经存在A和B两个文件,再次选择文件时又选择了A和B,该属性值为2。 
•allBytesTotal:所有选择的文件的总大小。 
onCancel : 当点击文件队列中文件的关闭按钮或点击取消上传时触发。该函数有event、queueId、fileObj、data四个参数,前三个参数同onSelect 中的三个参数,data对象有两个属性fileCount和allBytesTotal。

•fileCount:取消一个文件后,文件队列中剩余文件的个数。 
•allBytesTotal:取消一个文件后,文件队列中剩余文件的大小。 
onClearQueue :当调用函数fileUploadClearQueue时触发。有event和data两个参数,同onCancel 中的两个对应参数。

onQueueFull :当设置了queueSizeLimit并且选择的文件个数超出了queueSizeLimit的值时触发。该函数有两个参数event和queueSizeLimit。

onError :当上传过程中发生错误时触发。该函数有event、queueId、fileObj、errorObj四个参数,其中前三个参数同上,errorObj对象有type和info两个属性。

•type:错误的类型,有三种‘HTTP’, ‘IO’, or ‘Security’ 
•info:错误的描述 
onOpen :点击上传时触发,如果auto设置为true则是选择文件时触发,如果有多个文件上传则遍历整个文件队列。该函数有event、queueId、fileObj三个参数,参数的解释同上。

onProgress :点击上传时触发,如果auto设置为true则是选择文件时触发,如果有多个文件上传则遍历整个文件队列,在onOpen之后触发。该函数有event、queueId、fileObj、data四个参数,前三个参数的解释同上。data对象有四个属性percentage、bytesLoaded、allBytesLoaded、speed:

•percentage:当前完成的百分比 
•bytesLoaded:当前上传的大小 
•allBytesLoaded:文件队列中已经上传完的大小 
•speed:上传速率 kb/s 
onComplete:文件上传完成后触发。该函数有四个参数event、queueId、fileObj、response、data五个参数,前三个参数同上。response为后台处理程序返回的值,在上面的例子中为1或0,data有两个属性fileCount和speed

•fileCount:剩余没有上传完成的文件的个数。 
•speed:文件上传的平均速率 kb/s 
onAllComplete:文件队列中所有的文件上传完成后触发。该函数有event和data两个参数,data有四个属性,分别为:

•filesUploaded :上传的所有文件个数。 
•errors :出现错误的个数。 
•allBytesLoaded :所有上传文件的总大小。 
•speed :平均上传速率 kb/s

方法:

uploadifyUpload:提交

<a href="javascript:$('#uploadify').uploadifyUpload()">上传</a>

uploadifyClearQueue:清楚队列

<a href="javascript:$('#uploadify').uploadifyClearQueue()">取消上传</a>

uploadifySettings:可以动态修改上面介绍的那些key值,如下面代码

$('#uploadify').uploadifySettings('folder','JS');如果上传按钮的事件写成下面这样,文件将会上传到uploadifySettings定义的目录中

<a href="javascript:$('#uploadify').uploadifySettings('folder','JS');$('#uploadify').uploadifyUpload()">上传</a>uploadifyCancel:该函数接受一个queueID作为参数,可以取消文件队列中指定queueID的文件。

$('#uploadify').uploadifyCancel(id);

以下是我用到的代码,可以参考一下:

view plaincopy to clipboardprint?
<script type="text/javascript">   
$(document).ready(function() {   
$("#uploadify").uploadify({   
    'uploader'       : 'images/uploadify.swf',   
    'script'         : '<%=request.getContextPath()%>/content/ImportScheduleCommitAction.do',   
    'cancelImg'      : 'images/cancel.png',   
    'folder'         : '/',   
    'queueID'        : 'fileQueue',   
    'fileDataName'   : 'uploadify',   
    'fileDesc'       : '支持格式:xls.',    
    'fileExt'        : '*.xls',   
    'auto'           : false,   
    'multi'          : true,   
    'height'         : 20,   
    'width'          : 50,   
    'simUploadLimit' : 3,   
   //'buttonText'     : 'fdsfdsf...',   
    'buttonImg'      : 'images/browse.jpg',   
   // 'hideButton'     : true,   
   // 'rollover'       : true,   
    'wmode'          : 'transparent' ,   
    onComplete       : function (event, queueID, fileObj, response, data)   
     {    
      $('<li></li>').appendTo('.files').text(response);    
     },    
    onError          : function(event, queueID, fileObj)   
     {    
       alert("文件:" + fileObj.name + " 上传失败");    
     }    
// onCancel         : function(event, queueID, fileObj)   
// {    
//     alert("取消文件:" + fileObj.name);    
// }    
   }); 
<script type="text/javascript">
$(document).ready(function() {
$("#uploadify").uploadify({
    'uploader'       : 'images/uploadify.swf',
    'script'         : '<%=request.getContextPath()%>/content/ImportScheduleCommitAction.do',
    'cancelImg'      : 'images/cancel.png',
    'folder'         : '/',
    'queueID'        : 'fileQueue',
    'fileDataName'   : 'uploadify',
    'fileDesc'       : '支持格式:xls.', 
    'fileExt'        : '*.xls',
    'auto'           : false,
    'multi'          : true,
    'height'         : 20,
    'width'          : 50,
    'simUploadLimit' : 3,
   //'buttonText'     : 'fdsfdsf...',
    'buttonImg'      : 'images/browse.jpg',
   // 'hideButton'     : true,
   // 'rollover'       : true,
    'wmode'          : 'transparent' ,
    onComplete       : function (event, queueID, fileObj, response, data)
     { 
      $('<li></li>').appendTo('.files').text(response); 
     }, 
    onError          : function(event, queueID, fileObj)
     { 
       alert("文件:" + fileObj.name + " 上传失败"); 
     } 
// onCancel         : function(event, queueID, fileObj)
// { 
//     alert("取消文件:" + fileObj.name); 
// } 
   });

要注意的是,我的script属性值是一个请求路径,我发现在我设置了同时上传多个文件后(比如3),并不是每请求一次去上传3个文件,而仍然是执行3次请求,请求一次上传一个文件。这也没办法,uplodify有那么多回调函数,要是一次处理多个,那回调函数的参数就不知道拿哪个了,因为这些参数都不是数组。

也就是说,无论你设置同时上传几个文件,它都会一个一个去请求并上传,只是表面上感觉好像有多个线程同时在处理上传请求一样,只是表象而已。而且如果你把simUploadLimit设置过大就会经常出错,我设置成5的时候经常会有一两个文件上传失败。

uploadify API的更多相关文章

  1. JQuery上传插件Uploadify API详解

    一.相关key值介绍uploader:uploadify.swf文件的相对路径,该swf文件是一个带有文字BROWSE的按钮,点击后淡出打开文件对话框,默认值:uploadify.swf. scrip ...

  2. Uploadify API在项目上的应用

    在项目开发中,前端使用easyui,jq的时候,我么涉及到导入的时候都要用到这个上传插件,用法是: 1:先初始化上传控件 2:打开导入的easyui dialog弹出框,dialog里面将上传的inp ...

  3. jQuery UI框架

    jQuery UI框架 1.oschina开源社区-jQuery教程 2.jQuery PrimeUI(推荐) 3.弹出框.警告框.提示框.拖动支持.位置固定.选项卡切换 4.Bootstrap框架( ...

  4. Uploadify 结合 Web API 2 上传问题

    最近使用jQuery.Uploadify和Web API配合来做上传,碰到问题,还木有办法解决,记录一下: 环境:jQuery 1.10.2,Uploadify 3.2.1,SWFObject 2.2 ...

  5. java 上传3(uploadify中文api)

    jquery文件上传控件 Uploadify 基于jquery的文件上传控件,支持ajax无刷新上传,多个文件同时上传,上传进行进度显示,删除已上传文件. 要求使用jquery1.4或以上版本,fla ...

  6. jquery.uploadify上传插件HTML5版中文api使用说明

    插件官网文档:http://www.uploadify.com/documentation/ H5版下载地址:https://download.csdn.net/download/u010075697 ...

  7. jquery文件上传控件 Uploadify

    (转自 http://www.cnblogs.com/mofish/archive/2012/11/30/2796698.html) 基于jquery的文件上传控件,支持ajax无刷新上传,多个文件同 ...

  8. 免费的HTML5版uploadify送上

    相信有不少同学用过uploadify这一款文件上传插件,它支持多文件选择.能显示进度条.可配置性高,总体来说是比较好用的.官网有两个版本供下载,分别是flash版和HTML5版.不过令人惋惜的是,HT ...

  9. 使用Uploadify(UploadiFive)多文件上传控件遇到的坑

    最近项目中需要实现多文件上传功能,于是结合需求最终选择了Uploadify这一款控件来实现.相比其他控件,Uploadify具有简洁的界面,功能API基本可以解决大多数需求,又是基于jquery的,配 ...

随机推荐

  1. NPM 与 left-pad 事件:我们是不是早已忘记该如何好好地编程?

    转自:http://www.techug.com/npm-left-pad-have-we-forgotten-how-to-program 开发者朋友们,我们该谈一谈这个问题了.你们应该知道本周的  ...

  2. 130 个你需要了解的 vim 命令

    基础 :e filename Open filename for edition :w Save file :q Exit Vim :q! Quit without saving :x Write f ...

  3. Office2016下载地址

    Office 2016 专业增强版32 位: 文件名:SW_DVD5_Office_Professional_Plus_2016_W32_ChnSimp_MLF_X20-41351.ISO SHA1: ...

  4. [原]如何在Android用FFmpeg+SDL2.0解码图像线程

    关于如何在Android上用FFmpeg+SDL2.0解码显示图像参考[原]如何在Android用FFmpeg+SDL2.0解码显示图像 ,关于如何在Android使用FFmpeg+SDL2.0解码声 ...

  5. ubuntu使用

    1主机名修改 在Ubuntu系统中永久修改主机名也比较简单.主机名存放在/etc/hostname文件中,修改主机名时,编辑hostname文件,在文件中输入新的主机名并保存该文件即可.

  6. AjaxControlToolKit--TabContainer控件的介绍

    1.       Introduction: Tab本身就应该是个以页签形式显示组织网页内容的一个控件.在AJAX Control Tool Kit的控件中有TabContainer控件,它是一些Ta ...

  7. scanf中的[]

    今天被问到一个问题,如何用scanf将 hello-my-world中的三个单词, hello my world 分别放到三个char数组中去 于是用到了scanf中的[] [ ] 扫描字符集合,比如 ...

  8. MyBatis知多少(21)更新操作

    上一章展示了如何使用MyBatis对表进行读取操作.本章将告诉你如何在一个表中使用MyBatis更新记录. 我们已经在MySQL下有EMPLOYEE表: CREATE TABLE EMPLOYEE ( ...

  9. overflow:hidden的另一层含义

    overflow:hidden这个CSS样式是大家常用到的CSS样式,但是大多数人对这个样式的理解仅仅局限于隐藏溢出,而对于清除浮动这个含义不是 很了解.一提到清除浮动,我们就会想到另外一个CSS样式 ...

  10. grunt压缩多个js文件和css文件

    压缩前的工程目录: 1.安装js,css需要的插件 使用npm安装:npm install grunt-contrib-uglify --save-dev  -------->安装js压缩插件 ...