標籤:
一、屬性
| 屬性名稱 |
預設值 |
說明 |
| 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,直接迴圈寫入資料庫會多出一組,原因暫時不明。
來源: <http://blog.sina.com.cn/s/blog_5079086b0101fkmh.html>
Uploadify 3.2 參數屬性、事件、方法函數詳解