jQuery上传文件的插件uploadify,参数属性、事件、方法函数详解

今天项目当中用到了uploadify上传插件,之前虽然也有用过这个插件,但是基本只是用了他的上传功能,关于他的一些参数,一些事件,都没有认真的去了解。 
这一次相比上次还是认真看了一下文档,并且对一些事件有了一些了解。所以顺便将文档翻译方便有需要的朋友使用。如果有错误的地方,欢迎大家指正。

引入插件

我们只需要使用以下代码片段,就可以使用这个插件了 
当然,在此之前,我们还需要引入一个css样式文件,以及jQuery库文件,uploadify的js文件,以及在input上加上与代码片段相同的id。

<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
  • 1
<link rel="stylesheet" type="text/css" href="uploadify.css" />
  • 1
<script type="text/javascript" src="/jquery.uploadify-3.1.min.js"></script>
  • 1
<input type="file" name="file_upload" id="file_upload" />
  • 1
$(function() {
    $('#file_upload').uploadify({
        'swf'      : 'uploadify.swf',
        'uploader' : 'uploadify.php'
        // Put your options here
    });
});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

接下来就是重点了,丰富的options以及事件让uploadify插件变得非常强大

选项设置说明

auto
// 默认为true,即当文件被选择时,自动进行上传。如果你设置为false,则通过upload方法开始上传。
  • 1
  • 2
buttonClass
// 这个选项是给选择文件的按钮指定一个class样式,通过这个指定,我们可以对默认的按钮样式进行修改。
  • 1
  • 2
buttonCursor
// 指定当鼠标悬停在选择文件按钮上时,鼠标的样式。可以是手形或者是默认的箭头。
// hand 手形
// arrow 箭头
  • 1
  • 2
  • 3
  • 4
buttonImage
// 设置一张图片作为按钮的背景。
  • 1
  • 2
buttonText
// 设置按钮上显示的文本。
  • 1
  • 2
checkExisting
// 默认为false,如果设置为true,当你重复上传一个文件的时候,会进行提示。
  • 1
  • 2
debug
// 默认为false,当你设置为true的时候,会将所有的操作显示,方便查找到问题。
  • 1
  • 2
fileObjName
// 默认为Filedata,如设置为'the_files',后台PHP取数据时为 $_FILE['the_files']
  • 1
  • 2
fileSizeLimit
// 允许上传的文件最大尺寸。如果设置为0则不限制,如果指定大小,可以为'100KB',单位可以是'B','KB','MB''GB'
  • 1
  • 2
fileTypeDesc
// 选择文件时的描述。这个字符串出现在浏览文件对话框的文件类型下拉列表中。
// 我设置这个属性并没有看到效果,你可以尝试看看。
  • 1
  • 2
  • 3
fileTypeExts
// 允许被上传的文件类型。这个检测可以被绕过,所以服务端还是有必要做安全检测的。
// 'fileTypeExts' : '*.gif; *.jpg; *.png'      限制上传的格式
// 'fileTypeExts' : '*.*'                      默认为不限制
  • 1
  • 2
  • 3
  • 4
formData
// 如果你在上传文件时,想提交一些额外的数据到服务端,可以使用这个参数。
// 'formData'      : {'someKey' : 'someValue', 'someOtherKey' : 1},   使用格式
// 建议使用后面介绍的 onUploadStart 事件提交这些参数,而不是写在这个选项当中。
  • 1
  • 2
  • 3
  • 4
height
// 设置选择文件按钮的高度
// 'height'   : 50,
  • 1
  • 2
  • 3
width
// 设置选择文件按钮的宽度
// 'width'    : 300
  • 1
  • 2
  • 3
itemTemplate
// 我们可以通过设置这个选项,修改文件添加到队列中的样式。即选择文件开始上传后,显示上传进度那个框的样式。
//'itemTemplate' : '<div id="${fileID}" class="uploadify-queue-item">\
//                  <div class="cancel">\
//                  <a href="javascript:$(\'#${instanceID}\').uploadify(\'cancel\', \'${fileID}\')">X</a>\
//                  </div>\
//                  <span class="fileName">${fileName} (${fileSize})</span><span  class="data"></span>\
//                  </div>'
// ${instanceID}  uploadify实例的ID
// ${fileID}      文件在上传队列中的ID
// ${fileName}    文件在上传队列中的名称
// ${fileSize}    文件在上传队列中的大小
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
method
// 提交文件上传时使用的方法,默认是post
  • 1
  • 2
multi
// 默认为true。设置为false,一次只能选择一个文件进行上传。
  • 1
  • 2
overrideEvents
// 可以设置一些你想绕过的事件。默认为空
// 'overrideEvents' : ['onUploadProgress'],  这样设置之后,将不会返回当前文件的上传进度。
  • 1
  • 2
  • 3
preventCaching
// 默认为true,会给uploadify的swf文件URL后加上随机值,防止浏览器加载swf的缓存。
// 基本不需要修改,至于在什么场景下需要修改为false,我还不太清楚,如果你知道,欢迎评论告诉我。
  • 1
  • 2
  • 3
progressData
// 设置在显示文件上传进度的时候,显示文件上传速度还是文件已上传的百分比
// 默认设置为 percentage 百分比,可以设置为 speed 会显示上传速度
  • 1
  • 2
  • 3
queueID
// 可以为显示上传文件的框指定一个显示区域。
// 'queueID'  : 'queue_content',     设置的格式,ID不需要#号
  • 1
  • 2
  • 3
queueSizeLimit
// 指定队列中上传文件的数量,即同时被上传的文件数量。如设置为1,则必须等到文件上传完成后,才可以再添加文件到队列。默认为999
// 'queueSizeLimit' : 1,         设置的格式
  • 1
  • 2
  • 3
removeCompleted
// 默认为true,设置为false时,文件上传完成后,不会被移除,而是一直显示在队列当中。
  • 1
  • 2
removeTimeout
// 文件上传成功后,多少秒后移除出队列。默认为3秒
  • 1
  • 2
requeueErrors
// 文件上传失败后,自动重新上传。默认为false
  • 1
  • 2
successTimeout
// 文件上传成功后,等待服务器返回信息的时间。默认为30秒。如超时未返回,插件默认为返回了成功。
  • 1
  • 2
swf
// 指定uploadify.swf的路径,默认为当前目录
  • 1
  • 2
uploader
// 指定服务端上传处理文件的路径
  • 1
  • 2
uploadLimit
// 允许上传文件的最大数量,当达到或超过这个数字时,会触发onUploadError事件,默认为999
  • 1
  • 2

触发事件说明

onCancel 当一个文件从上传队列中被删除时触发
// 参数
// file 该文件对象被取消
$(function() {
    $("#file_upload").uploadify({
        'auto'     : false,
        'swf'      : '/uploadify/uploadify.swf',
        'uploader' : '/uploadify/uploadify.php',
        'onCancel' : function(file) {
            alert('The file ' + file.name + ' was cancelled.');
        }
    });
});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
onClearQueue 当取消方法被调用以’*’作为参数触发此事件。
// 参数
// queueItemCount 被取消的文件数目
$(function() {
    $("#file_upload").uploadify({
        'auto'         : false,
        'swf'          : '/uploadify/uploadify.swf',
        'uploader'     : '/uploadify/uploadify.php',
        'onClearQueue' : function(queueItemCount) {
            alert(queueItemCount + ' file(s) were removed from the queue');
        } 
    });
});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
onDestroy 调用destroy方法时触发。
$(function() {
    $("#file_upload").uploadify({
        'swf'       : '/uploadify/uploadify.swf',
        'uploader'  : '/uploadify/uploadify.php',
        'onDestroy' : function() {
            alert('I am getting destroyed!');
        }
    });
});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
onDialogClose 当浏览文件对话框关闭时触发。如果该事件被添加到覆盖事件选项,如果将文件添加到队列时发生错误,默认的错误消息将不会提示。
// 参数
// queueData 包含有关队列信息的queueData对象:
// filesSelected  文件的浏览文件对话框中选择数
// filesQueued   添加到队列的文件数(即未返回一个错误)
// filesReplaced 在队列中替换的文件的数目
// filesCancelled 即,从被添加到队列取消的文件数(未取代)
// filesErrored 该返回错误的文件数

$(function() {
    $("#file_upload").uploadify({
        'fileSizeLimit'  : '50KB',
        'overrideEvents' : ['onDialogClose'],
        'swf'            : '/uploadify/uploadify.swf',
        'uploader'       : '/uploadify/uploadify.php',
        'onDialogClose'  : function(queueData) {
            alert(queueData.filesQueued + ' files were queued of ' + queueData.filesSelected + ' selected files. There are ' + queueData.queueLength + ' total files in the queue.');
        }
    });
});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
onDialogOpen 打开浏览文件对话框之前触发,但是放在这个函数的代码可能无法触发,直到对话框关闭。
$(function() {
    $("#file_upload").uploadify({
        'swf'          : '/uploadify/uploadify.swf',
        'uploader'     : '/uploadify/uploadify.php',
        'onDialogOpen' : function() {
            $('#message_box').html('The file dialog box was opened...');
        }
    });
});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
onDisable 禁用uploadify时触发
$(function() {
    $("#file_upload").uploadify({
        'swf'      : '/uploadify/uploadify.swf',
        'uploader' : '/uploadify/uploadify.php',
        'onDisable' : function() {
            alert('You have disabled Uploadify!');
        }
    });
});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
onEnable 启用uploadify时触发
$(function() {
    $("#file_upload").uploadify({
        'swf'      : '/uploadify/uploadify.swf',
        'uploader' : '/uploadify/uploadify.php',
        'onEnable' : function() {
            alert('You can use Uploadify again.');
        }
    });
});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
onFallback 浏览器不兼容Flash时触发
$(function() {
    $("#file_upload").uploadify({
        'swf'        : '/uploadify/uploadify.swf',
        'uploader'   : '/uploadify/uploadify.php',
        'onFallback' : function() {
            alert('Flash was not detected.');
        }
    });
});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
onInit 初始化Uploadify完成后的调用
$(function() {
    $("#file_upload").uploadify({
        'swf'      : '/uploadify/uploadify.swf',
        'uploader' : '/uploadify/uploadify.php',
        'onInit'   : function(instance) {
            alert('The queue ID is ' + instance.settings.queueID);
        }
    });
});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
onInit 初始化Uploadify完成后的调用
// 参数
// instance 初始化完成的uploadify对象
$(function() {
    $("#file_upload").uploadify({
        'swf'      : '/uploadify/uploadify.swf',
        'uploader' : '/uploadify/uploadify.php',
        'onInit'   : function(instance) {
            alert('The queue ID is ' + instance.settings.queueID);
        }
    });
});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
onQueueComplete 当队列中的所有文件已被处理时触发。
// 参数
// queueData 包含有关队列信息的queueData对象:
// uploadsSuccessful 已成功完成了上传的文件数量
// uploadsErrored  即返回错误的上传数
$(function() {
    $("#file_upload").uploadify({
        'swf'      : '/uploadify/uploadify.swf',
        'uploader' : '/uploadify/uploadify.php',
        'onQueueComplete' : function(queueData) {
            alert(queueData.uploadsSuccessful + ' files were successfully uploaded.');
        }
    });
});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
onSelect 从浏览文件对话框中选择文件并添加到队列中时触发
// 参数
// file 选择的文件对象
$(function() {
    $("#file_upload").uploadify({
        'swf'      : '/uploadify/uploadify.swf',
        'uploader' : '/uploadify/uploadify.php',
        'onSelect' : function(file) {
            alert('The file ' + file.name + ' was added to the queue.');
        }
    });
});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
onSelectError 当选择文件返回一个错误时触发
// 参数
// file 返回错误的文件对象
// errorCode 返回的错误代码。以下常量可以判断错误代码时使用:
//   QUEUE_LIMIT_EXCEEDED 文件的数量超过限制
//   FILE_EXCEEDS_SIZE_LIMIT 文件的大小超过所设定的上限。
//   ZERO_BYTE_FILE 文件为空
//   INVALID_FILETYPE 文件类型不匹配已设置的文件类型的限制
// ERRORMSG 错误消息,可以使用 this.queueData.errorMsg 设置错误消息
$(function() {
    $("#file_upload").uploadify({
        'fileSizeLimit' : '50KB',
        'swf'           : '/uploadify/uploadify.swf',
        'uploader'      : '/uploadify/uploadify.php',
        'onSelectError' : function() {
            alert('The file ' + file.name + ' returned an error and was not added to the queue.');
        }
    });
});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
onSWFReady Flash对象加载完毕后触发
$(function() {
    $("#file_upload").uploadify({
        'swf'        : '/uploadify/uploadify.swf',
        'uploader'   : '/uploadify/uploadify.php',
        'onSWFReady' : function() {
            alert('The Flash file is ready to go.');
        }
    });
});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
onUploadComplete 当上传完成后触发(即使上传失败),如果你想知道上传成功与否,建议使用onUploadSuccess 或 onUploadError
// 参数
// file 被上传的文件对象或返回一个错误
$(function() {
    $("#file_upload").uploadify({
        'swf'              : '/uploadify/uploadify.swf',
        'uploader'         : '/uploadify/uploadify.php',
        'onUploadComplete' : function(file) {
            alert('The file ' + file.name + ' finished processing.');
        }
    });
});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
onUploadError 当一个文件被上传,但返回一个错误时触发。
// 参数
// file 被上传的文件对象
// errorCode 错误代码
// errorMsg 错误信息
// errorString 包含错误细节的可读信息
$(function() {
    $("#file_upload").uploadify({
        'swf'           : '/uploadify/uploadify.swf',
        'uploader'      : '/uploadify/uploadify-not-existing.php',
        'onUploadError' : function(file, errorCode, errorMsg, errorString) {
            alert('The file ' + file.name + ' could not be uploaded: ' + errorString);
        }
    });
});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
onUploadProgress 每一个文件上传进度更新时触发。
// 参数
// file 正在被上传的文件对象
// bytesUploaded 该文件已上传的字节数
// bytesTotal 该文件的总字节数
// totalBytesUploaded 当前正在上传的所有文件已上传的字节数
// totalBytesTotal 当前正在上传的所有文件总字节数
$(function() {
    $("#file_upload").uploadify({
        'swf'              : '/uploadify/uploadify.swf',
        'uploader'         : '/uploadify/uploadify.php',
        'onUploadProgress' : function(file, bytesUploaded, bytesTotal, totalBytesUploaded, totalBytesTotal) {
            $('#progress').html(totalBytesUploaded + ' bytes uploaded of ' + totalBytesTotal + ' bytes.');
        }
    });
});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
onUploadStart 文件上传之前触发。
// 参数
// file 将要被上传的文件对象
$(function() {
    $("#file_upload").uploadify({
        'swf'           : '/uploadify/uploadify.swf',
        'uploader'      : '/uploadify/uploadify.php',
        'onUploadStart' : function(file) {
            alert('Starting to upload ' + file.name);
        }
    });
});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
onUploadSuccess 文件上传成功后触发
// 参数
// file 已成功上传的文件对象
// data 服务端返回的数据
// response 服务器响应,成功返回为true,没有返回为false
$(function() {
    $("#file_upload").uploadify({
        'swf'             : '/uploadify/uploadify.swf',
        'uploader'        : '/uploadify/uploadify.php',
        'onUploadSuccess' : function(file, data, response) {
            alert('The file ' + file.name + ' was successfully uploaded with a response of ' + response + ':' + data);
        }
    });
});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

方法使用说明

cancel 取消队列中的文件,或终止上传
// 参数
// fileID 要取消的文件ID,如果没有传入ID,则取消队列中的第一个文件。如果传入为*号,则取消队列中的所有文件。
// suppressEvent 如果设置为true,则onUploadCancel事件将不会被触发。清除队列时,这是非常有用的。

<input type="file" name="file_upload" id="file_upload" />
<a href="javascript:$('#file_upload').uploadify('cancel')">Cancel First File</a> 
<a href="javascript:$('#file_upload').uploadify('cancel', '*')">Clear the Queue</a>
<a href="javascript:$('#file_upload').uploadify('upload', '*')">Upload the Files</a>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
destroy 注销uploadify的实例
<input type="file" name="file_upload" id="file_upload" />
<a href="javascript:$('#file_upload').uploadify('destroy')">Destroy Uploadify</a>
  • 1
  • 2
disable 禁用或启用选择文件按钮
// 参数
// setDisabled 设置为true禁用按钮,设置为false启用按钮
<input type="file" name="file_upload" id="file_upload" />
<a href="javascript:$('#file_upload').uploadify('disable', true)">Disable the Button</a>
<a href="javascript:$('#file_upload').uploadify('disable', false)">Enable the Button</a>
  • 1
  • 2
  • 3
  • 4
  • 5
settings 设置或返回uploadify的参数
// 参数
// name 要返回或设置的参数名称,只有该参数将返回值
// value 想要设置的值
// resetObjects 更新postData参数时,设置为true,将删除现有的值。设置为false,将添加到现有的值当中。
// 注意:不能设置swf参数的值。
<input type="file" name="file_upload" id="file_upload" />
<a href="javascript:changeBtnText()">Change the Button Text</a>
<a href="javascript:returnBtnText();">Read the Button</a>
function changeBtnText() {
    $('#file_upload').uploadify('settings','buttonText','BROWSE');
}
function returnBtnText() {
    alert('The button says ' + $('#file_upload').uploadify('settings','buttonText'));
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
stop 停止上传
<input type="file" name="file_upload" id="file_upload" />
<a href="javascript:$('#file_upload').uploadify('upload', '*')">Upload the Files</a>
<a href="javascript:$('#file_upload').uploadify('stop')">Stop the Uploads!</a>
  • 1
  • 2
  • 3
upload 上传特定文件或队列中的所有文件。
// 参数
// fileID 指定需要上传的文件ID,可以为多个。传*号上传所有文件
<input type="file" name="file_upload" id="file_upload" />
<a href="javascript:$('#file_upload').uploadify('upload','*')">Upload Files</a>
一、属性
属性名称默认值说明
autotrue设置为true当选择文件后就直接上传了,为false需要点击上传按钮才上传 。
buttonClass按钮样式
buttonCursor‘hand’鼠标指针悬停在按钮上的样子
buttonImagenull浏览按钮的图片的路径 。
buttonText‘SELECT FILES’浏览按钮的文本。
checkExistingfalse文件上传重复性检查程序,检查即将上传的文件在服务器端是否已存在,存在返回1,不存在返回0
debugfalse如果设置为true则表示启用SWFUpload的调试模式
fileObjName‘Filedata’文件上传对象的名称,如果命名为’the_files’,PHP程序可以用$_FILES['the_files']来处理上传的文件对象。
fileSizeLimit0

上传文件的大小限制 ,如果为整数型则表示以KB为单位的大小,如果是字符串,则可以使用(B, KB, MB, or GB)为单位,比如’2MB’;

如果设置为0则表示无限制

fileTypeDesc‘All Files’这个属性值必须设置fileTypeExts属性后才有效,用来设置选择文件对话框中的提示文本,如设置fileTypeDesc为“请选择rar doc pdf文件”
fileTypeExts‘*.*’设置可以选择的文件的类型,格式如:’*.doc;*.pdf;*.rar’ 。
formData JSON格式上传每个文件的同时提交到服务器的额外数据,可在’onUploadStart’事件中使用’settings’方法动态设置。
height30设置浏览按钮的高度 ,默认值
itemTemplatefalse用于设置上传队列的HTML模版,可以使用以下标签: instanceID – Uploadify实例的ID fileID – 列队中此文件的ID,或者理解为此任务的ID fileName – 文件的名称 fileSize – 当前上传文件的大小 插入模版标签时使用格式如:${fileName}
methodPost提交方式Post或Get
multitrue设置为true时可以上传多个文件。
overrideEvents 设置哪些事件可以被重写,JSON格式,如:’overrideEvents’ : ['onUploadProgress']
preventCachingtrue如果为true,则每次上传文件时自动加上一串随机字符串参数,防止URL缓存影响上传结果
progressData‘percentage’设置上传进度显示方式,percentage显示上传百分比,speed显示上传速度
queueIDfalse设置上传队列容器DOM元素的ID,如果为false则自动生成一个队列容器。
queueSizeLimit999队列最多显示的任务数量,如果选择的文件数量超出此限制,将会出发onSelectError事件。 注意此项并非最大文件上传数量,如果要限制最大上传文件数量,应设置uploadLimit。
removeCompletedtrue是否自动将已完成任务从队列中删除,如果设置为false则会一直保留此任务显示。
removeTimeout3如果设置了任务完成后自动从队列中移除,则可以规定从完成到被移除的时间间隔。
requeueErrorsfalse如果设置为true,则单个任务上传失败后将返回错误,并重新加入任务队列上传。
successTimeout30文件上传成功后服务端应返回成功标志,此项设置返回结果的超时时间
swf‘uploadify.swf’uploadify.swf 文件的相对路径。
uploaderuploadify.php后台处理程序的相对路径。
uploadLimit999最大上传文件数量,如果达到或超出此限制将会触发onUploadError事件。
width120设置文件浏览按钮的宽度。

 

二、事件
事件名称说明
onCancel(file)

当点击文件队列中文件的关闭按钮或点击取消上传时触发,file参数为被取消上传的文件对象

onClearQueue(queueItemCount)当调用函数cancel方法时触发,queueItemCount参数为被取消上传的文件数量。
onDestroy()当destory方法被调用时触发
onDialogClose(queueData)

当文件浏览框关闭时触发,如果将此事件被重写,则当向队列添加文件上传出错时不会弹出错误消息提示。

queueData对象包含如下属性:

  • filesSelected 文件选择对话框中共选择了多少个文件
  • filesQueued 已经向队列中添加了多少个文件
  • filesReplaced 已经向队列中替换了多少个文件
  • filesCancelled 取消了多少个文件 filesErrored 出错了多少个文件
onDialogOpen()当文件选择对话框弹出时立即出发,但可能在文件选择对话框被关闭之前并不能全部执行。
onDisable()当disable方法禁用Uploadify上传按钮时被调用时触发。
onEnable()当disable方法启用Uploadify上传按钮时被调用时触发。
onFallback()当Uploadify初始化过程中检测到当前浏览器不支持flash时触发。
onInit()首次初始化Uploadify结束时触发。
onQueueComplete(queueData)

文件上传队列处理完毕后触发。

queueData对象包含如下属性:

  • uploadsSuccessful – 上传成功的文件数量
  • uploadsErrored – 上传失败的文件数量
onSelect(file)

选择文件后向队列中添加每个上传任务时都会触发。

onSelectError(file, errorCode, errorMsg)

选择文件后向队列中添加每个上传任务时如果失败都会触发。

file – 文件对象

errorCode – 错误代码如下:

  • QUEUE_LIMIT_EXCEEDED – 任务数量超出队列限制;
  • FILE_EXCEEDS_SIZE_LIMIT – 文件大小超出限制;
  • ZERO_BYTE_FILE – 文件大小为0
  • INVALID_FILETYPE – 文件类型不符合要求

errorMsg – 错误提示,可通过’this.queueData.errorMsg’定制

onSWFReady()Flash文件载入成功后触发。
onUploadComplete(file)每个文件上传完毕后无论成功与否都会触发。
onUploadError(file, errorCode, errorMsg, errorString)文件上传出错时触发,参数由服务端程序返回。
onUploadProgress(file, bytesUploaded, bytesTotal, totalBytesUploaded, totalBytesTotal)

处理上传队列的过程中会多次触发此事件,每当任务状态有更新时都会触发。

  • file – 文件对象
  • bytesUploaded – 已上传的字节数
  • bytesTotal – 文件总字节数
  • totalBytesUploaded – 当前任务队列中全部文件已上传的总字节数
  • totalBytesTotal – 当前任务队列中全部文件的总字节数
onUploadStart(file)当文件即将开始上传时立即触发
onUploadSuccess(file, data, response)

当文件上传成功时触发

  • file – 文件对象
  • data – 服务端输出返回的信息
  • response – 有输出时为true,如果无响应为false,如果返回的是false,当超过successTimeout设置的时间后假定为true
三、方法
方法名称说明应用举例
cancel(fileID, suppressEvent)

取消队列中的任务,不管此任务是否已经开始上传

  • fileID – 要取消的文件ID,如果为空则取消队列中第一个任务,如果为’*'则取消所有任务
  • suppressEvent – 是否阻止触发onUploadCancel事件,当清空队列时非常实用。

<a href="javascript:$(‘#file_upload’).uploadify(‘cancel’)">取消第一个</a>

<a href="javascript:$(‘#file_upload’).uploadify(‘cancel’, ‘*’)">清空队列</a>

<a href="javascript:$(‘#file_upload’).uploadify(‘upload’, ‘*’)">开始上传所有任务</a>

destroy()销毁Uploadify实例并将文件上传按钮恢复到原始状态<a href="javascript:$(‘#file_upload’).uploadify(‘destroy’)">销毁Uploadify实例</a>
disable(setDisabled)

禁用或启用文件浏览按钮

setDisabled – 设置为true表示禁用,false为启用

<a href="javascript:$(‘#file_upload’).uploadify(‘disable’, true)">禁用按钮</a>

<a href="javascript:$(‘#file_upload’).uploadify(‘disable’, false)">启用按钮</a>

settings(name, value, resetObjects)

获取或设置Uploadify实例参数

  • name – 属性名称,如果只提供属性名称则表示获取其值
  • value – 属性值
  • resetObjects – 设置为true时,更新postData对象将清空现有的值。否则,新的值将被添加到其末尾。

$(‘#file_upload’).uploadify(‘settings’,'buttonText’,'BROWSE’);

$(‘#file_upload’).uploadify(‘settings’,'buttonText’));

stop()停止当前正在上传的任务

<a href="javascript:$(‘#file_upload’).uploadify(‘upload’, ‘*’)">开始上传</a>

<a href="javascript:$(‘#file_upload’).uploadify(‘stop’)">停止上传</a>

upload(fileID)立即上传指定的文件,如果fileID为’*'表示上传所有文件,要指定上传多个文件,则将每个文件的fileID作为一个参数<a href="javascript:$(‘#file_upload’).uploadify(‘upload’,'*’)">开始上传所有文
关于无法在formData获取到值得解决办法:在动态设置setting里设置就可以了,还是不知道是什么原因在直接配置文件里获取不到值。 另外如果将上传文件信息保存在session里要注意遍历的时候会有一点BUG,直接循环写入数据库会多出一组,原因暂时不明。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值