Uploadify 3.2 參數屬性、事件、方法函數詳解

一、屬性
屬性名稱 默認值 說明
auto true 設置爲true當選擇文件後就直接上傳了,爲false需要點擊上傳按鈕才上傳 。
buttonClass 按鈕樣式
buttonCursor ‘hand’ 鼠標指針懸停在按鈕上的樣子
buttonImage null 瀏覽按鈕的圖片的路徑 。
buttonText ‘SELECT FILES’ 瀏覽按鈕的文本。
checkExisting false 文件上傳重複性檢查程序,檢查即將上傳的文件在服務器端是否已存在,存在返回1,不存在返回0
debug false 如果設置爲true則表示啓用SWFUpload的調試模式
fileObjName ‘Filedata’ 文件上傳對象的名稱,如果命名爲’the_files’,PHP程序可以用$_FILES['the_files']來處理上傳的文件對象。
fileSizeLimit 0

上傳文件的大小限制 ,如果爲整數型則表示以KB爲單位的大小,如果是字符串,則可以使用(B, KB, MB, or GB)爲單位,比如’2MB’;

如果設置爲0則表示無限制

fileTypeDesc ‘All Files’ 這個屬性值必須設置fileTypeExts屬性後纔有效,用來設置選擇文件對話框中的提示文本,如設置fileTypeDesc爲“請選擇rar doc pdf文件”
fileTypeExts ‘*.*’ 設置可以選擇的文件的類型,格式如:’*.doc;*.pdf;*.rar’ 。
formData   JSON格式上傳每個文件的同時提交到服務器的額外數據,可在’onUploadStart’事件中使用’settings’方法動態設置。
height 30 設置瀏覽按鈕的高度 ,默認值
itemTemplate false 用於設置上傳隊列的HTML模版,可以使用以下標籤:
instanceID – Uploadify實例的ID
fileID – 列隊中此文件的ID,或者理解爲此任務的ID
fileName – 文件的名稱
fileSize – 當前上傳文件的大小
插入模版標籤時使用格式如:${fileName}
method Post 提交方式Post或Get
multi true 設置爲true時可以上傳多個文件。
overrideEvents   設置哪些事件可以被重寫,JSON格式,如:’overrideEvents’ : ['onUploadProgress']
preventCaching true 如果爲true,則每次上傳文件時自動加上一串隨機字符串參數,防止URL緩存影響上傳結果
progressData ‘percentage’ 設置上傳進度顯示方式,percentage顯示上傳百分比,speed顯示上傳速度
queueID false 設置上傳隊列容器DOM元素的ID,如果爲false則自動生成一個隊列容器。
queueSizeLimit 999 隊列最多顯示的任務數量,如果選擇的文件數量超出此限制,將會出發onSelectError事件。
注意此項並非最大文件上傳數量,如果要限制最大上傳文件數量,應設置uploadLimit。
removeCompleted true 是否自動將已完成任務從隊列中刪除,如果設置爲false則會一直保留此任務顯示。
removeTimeout 3 如果設置了任務完成後自動從隊列中移除,則可以規定從完成到被移除的時間間隔。
requeueErrors false 如果設置爲true,則單個任務上傳失敗後將返回錯誤,並重新加入任務隊列上傳。
successTimeout 30 文件上傳成功後服務端應返回成功標誌,此項設置返回結果的超時時間
swf ‘uploadify.swf’ uploadify.swf 文件的相對路徑。
uploader uploadify.php 後臺處理程序的相對路徑。
uploadLimit 999 最大上傳文件數量,如果達到或超出此限制將會觸發onUploadError事件。
width 120 設置文件瀏覽按鈕的寬度。

 

二、事件
事件名稱 說明
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.屬性

名稱

默認值

說明

swf

 

[必須設置]swf的路徑

uploader

 

[必須設置]服務器端腳本文件路徑

uploadLimit

999

最多上傳文件數量

checkExisting

false

檢查上傳文件是否存在的服務器端腳本文件路徑

queueID

 

顯示上傳文件隊列的元素id,可以簡單用一個div顯示

queueSizeLimit

999

上傳文件隊列長度限制

auto

true

表示在選擇文件後是否自動上傳

multi

true

是否支持多文件上傳

buttonClass

 

上傳按鈕樣式類型

buttonCursor

hand

上傳按鈕Hover時的鼠標形狀

buttonImage

NULL

上傳按鈕背景圖片

buttonText

SELECT FILES

上傳按鈕顯示文字

height

30

上傳按鈕高度

width

120

上傳按鈕寬度

debug

false

是否開啓調試模式

fileObjName

FileData

文件對象名稱,用於服務器端獲取文件

fileSizeLimit

 

上傳文件大小限制,默認單位是KB,如:”10KB”

fileTypeDesc

 

文件類型說明,在選擇文件時可以看到

fileTypeExts

*.*

指定允許上傳的文件類型,如:”*.jpg;*.gif”

formData

 

指定上傳文件附帶的其他數據,用於服務器端獲取這些數據,如:{“id”:”001”,”name”:”LiJin”}包含兩個鍵值對

method

post

和後臺交互方式,也可以設置爲get

overrideEvents

 

設置插件的某些事件可以被用戶覆寫,如:{“onUploadSuccess”}

preventCaching

true

若設置爲true,一個隨機數將被加載swf文件URL的後面,防止瀏覽器緩存

progressData

 

設置文件上傳時顯示的數據,可以設爲上傳速度或者百分比,分別對應speed和percentage

removeCompleted

true

表示上傳文件完成後是否刪除隊列中的對應元素

removeTimeout

3

表示上傳完成後多久刪除隊列中的進度條,單位爲秒

requeueErrors

 

若設置爲true,那麼在上傳過程中因爲出錯導致上傳失敗的文件將重新加入隊列

successTimeout

30

表示文件上傳完成後等待服務器響應的時間。超過該時間,那麼將認爲上傳成功。單位爲秒

2.事件

●onQueueComplete當隊列中的所有文件全部完成上傳時觸發

1 function (stats) {
2     alert("成功上傳的文件數:" + stats.uploadsSuccessful + " -上傳出錯的文件數:" +
3     stats.uploadsErrored + " -上傳的文件總大小:" + stats.uploadSize);
4 }

●onUploadComplete每個文件上傳完成時觸發

1 function (file) {
2     alert("id:" + file.id + " -索引:" + file.index + " -文件名稱:" + file.name +
3      " -文件大小:" + file.size + " -文件類型:" + file.type + " -創建日期:" + file.creationdate +
4      " -修改日期:" + file.modificationdate + " -文件狀態:" + file.filestatus);
5 }

●onUploadSuccess每個文件上傳成功後觸發

複製代碼
1 function (file , data, response) {
2     alert("id:" + file.id + " -索引:" + file.index + " -文件名稱:" + file.name +
3      " -文件大小:" + file.size + " -文件類型:" + file.type + " -創建日期:" + file.creationdate +
4      " -修改日期:" + file.modificationdate + " -文件狀態:" + file.filestatus +
5      " –服務器端消息:" + data + " –是否上傳成功:" + response);
6 }
複製代碼

●onUploadError每個文件上傳出錯時觸發

複製代碼
1 function (file , errorCode, errorMsg , errorString) {
2     alert("id:" + file.id + " -索引:" + file.index + " -文件名稱:" + file.name +
3      " -文件大小:" + file.size + " -文件類型:" + file.type + " -創建日期:" + file.creationdate +
4      " -修改日期:" + file.modificationdate + " -文件狀態:" + file.filestatus +
5      " –錯誤代碼:" + errorCode + " –錯誤描述:" + errorMsg + " –簡要錯誤描述:" + errorString);
6 }
複製代碼

●onUploadProgress上傳進度發生變更時觸發

1 function (file, bytesUploaded, bytesTotal, totalBytesUploaded, totalBytesTotal) {
2     alert("當前文件已上傳:" + bytesUploaded + "當前文件大小:" + bytesTotal +
3     "隊列已上傳:" + totalBytesUploaded + "隊列大小:" + totalBytesTotal);
4 }

●onCancel在文件被移出上傳隊列時觸發

1 function (file) {
2     alert("id:" + file.id + " -索引:" + file.index + " -文件名稱:" + file.name +
3      " -文件大小:" + file.size + " -文件類型:" + file.type + " -創建日期:" + file.creationdate +
4      " -修改日期:" + file.modificationdate + " -文件狀態:" + file.filestatus);
5 }

●onClearQueue在調用cancel方法且傳入參數*時觸發

1 function (queueItemCount) {
2     alert("取消上傳文件數量" + queueItemCount);
3 }
1 <a href="javascript:$('#uploadify').uploadify('cancel','*')">取消上傳</a>

●onDialogClose打開文件對話框關閉時觸發

複製代碼
1 function (queue) {
2     alert("選定的文件數:" + queue.filesSelected + "成功添加至隊列的文件數:" + queue.filesQueued +
3     "添加至隊列發生錯誤的文件數:" + queue.filesErrored + "現有隊列被替換文件數:" +
4     queue.filesReplaced + "現有隊列被取消文件數:" +
5     queue.filesCancelled + "隊列中的總文件數量:" + queue.Length);
6 }
複製代碼

●onUploadStart每個文件上傳開始時觸發

1 function (file) {
2     alert("id:" + file.id + " -索引:" + file.index + " -文件名稱:" + file.name +
3      " -文件大小:" + file.size + " -文件類型:" + file.type + " -創建日期:" + file.creationdate +
4      " -修改日期:" + file.modificationdate + " -文件狀態:" + file.filestatus);
5 }

●onDialogOpen選擇文件對話框打開時觸發

1 function () {
2     alert("打開");
3 }

●onFallback沒有兼容的flash時觸發

1 function () {
2     alert("flash不兼容");
3 }

●onInit每次初始化一個隊列時觸發

1 function (instance) {
2     alert(instance.settings.queueID);
3 }

●onSelect選擇文件後觸發

1 function (file) {
2     alert("id:" + file.id + " -索引:" + file.index + " -文件名稱:" + file.name +
3      " -文件大小:" + file.size + " -文件類型:" + file.type + " -創建日期:" + file.creationdate +
4      " -修改日期:" + file.modificationdate + " -文件狀態:" + file.filestatus);
5 }

●onSelectError選擇文件後出錯時觸發

複製代碼
1 function (file , errorCode, errorMsg ) {
2     alert("id:" + file.id + " -索引:" + file.index + " -文件名稱:" + file.name +
3      " -文件大小:" + file.size + " -文件類型:" + file.type + " -創建日期:" + file.creationdate +
4      " -修改日期:" + file.modificationdate + " -文件狀態:" + file.filestatus +
5      " –錯誤代碼:" + errorCode + " –錯誤描述:" + errorMsg);
6 }
複製代碼

3.方法

cancel、destroy、stop、upload用法一致,如:<a href="javascript:$('#uploadify').uploadify('upload','*')">上傳</a>,其他方法視情況而定。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章