属性:

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. The file 'MemoryStream' is corrupted! 的解决办法

    The file 'MemoryStream' is corrupted! Remove it and launch unity again! [Position > ] 有时候我们会遇到这个报 ...

  2. preg_match_all正则表达式的基本使用

    了解正则表达式之前,须要掌握一些常用的正则表达式的基础知识,这些如果能记得最好记得,记不住须要用的时候能查到就行,就多个特殊字符,所以说正则表达式玩的就是特殊,具体大家可以查看更加细致的说明. pre ...

  3. 用 Python 和 OpenCV 检测图片上的条形码

      用 Python 和 OpenCV 检测图片上的的条形码 这篇博文的目的是应用计算机视觉和图像处理技术,展示一个条形码检测的基本实现.我所实现的算法本质上基于StackOverflow 上的这个问 ...

  4. java数据库连接池性能对比

    这个测试的目的是验证当前常用数据库连接池的性能. testcase Connection conn = dataSource.getConnection(); PreparedStatement st ...

  5. Qt4.8.6 Embedded Linux 的编译与移植

    最近买了个飞凌ok6410 的开发板,于是在其中搭建qt4.8.6运行环境.费了两三天时间,主要还是对Linux系统的生疏,在一些问题上徘徊很久,在这里做一些过程笔记.烧写ARM-Linux系统,根据 ...

  6. [转载]SharePoint 2013 解决方案中使用JavaScript

    作为在SharePoint应用程序中使用JavaScript的第一步,就是要知道如何将一个写好的.js文件,引用到页面上.嗯,你可能觉得这个话题太简单了,"引用一个.js文件不就是在页面上方 ...

  7. Linux - 常见Shell文本处理方法

    Common Shell Text Processing 珠玉在前,不再赘言. Linux Shell 文本处理工具集锦:http://blog.jobbole.com/99063/ 数据工程师常用的 ...

  8. Lo-Dash – 替代 Underscore 的优秀 JS 工具库

    前端开发人员大都喜欢 Underscore,它的工具函数很实用,用法简单.这里给大家推荐另外一个功能更全面的 JavaScript 工具——Lo-Dash,帮助你更好的开发网站和 Web 应用程序. ...

  9. Android学习笔记之布局技巧以及布局中的细节介绍....

    PS:休息两天,放一放手上的东西,做做总结... 学习内容: 1.Android中LinearLayout布局技巧... 2.layout中drawable属性的区别...   先简单的介绍一下dra ...

  10. Mysql学习笔记(十一)临时表+视图

    学习内容: 临时表和视图的基本操作... 临时表与视图的使用范围... 1.临时表   临时表:临时表,想必大家都知道这个概念的存在...但是我们什么时候应该使用到临时表呢?当一个数据库存在着大量的数 ...