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物件包含如下屬性:
|
onDialogOpen() | 當檔案選擇對話方塊彈出時立即出發,但可能在檔案選擇對話方塊被關閉之前並不能全部執行。 |
onDisable() | 當disable方法禁用Uploadify上傳按鈕時被呼叫時觸發。 |
onEnable() | 當disable方法啟用Uploadify上傳按鈕時被呼叫時觸發。 |
onFallback() | 當Uploadify初始化過程中檢測到當前瀏覽器不支援flash時觸發。 |
onInit() | 首次初始化Uploadify結束時觸發。 |
onQueueComplete(queueData) |
檔案上傳佇列處理完畢後觸發。 queueData物件包含如下屬性:
|
onSelect(file) |
選擇檔案後向佇列中新增每個上傳任務時都會觸發。 |
onSelectError(file, errorCode, errorMsg) |
選擇檔案後向佇列中新增每個上傳任務時如果失敗都會觸發。 file – 檔案物件 errorCode – 錯誤程式碼如下:
errorMsg – 錯誤提示,可通過’this.queueData.errorMsg’定製 |
onSWFReady() | Flash檔案載入成功後觸發。 |
onUploadComplete(file) | 每個檔案上傳完畢後無論成功與否都會觸發。 |
onUploadError(file, errorCode, errorMsg, errorString) | 檔案上傳出錯時觸發,引數由服務端程式返回。 |
onUploadProgress(file, bytesUploaded, bytesTotal, totalBytesUploaded, totalBytesTotal) |
處理上傳佇列的過程中會多次觸發此事件,每當任務狀態有更新時都會觸發。
|
onUploadStart(file) | 當檔案即將開始上傳時立即觸發 |
onUploadSuccess(file, data, response) |
當檔案上傳成功時觸發
|
方法名稱 | 說明 | 應用舉例 |
cancel(fileID, suppressEvent) |
取消佇列中的任務,不管此任務是否已經開始上傳
|
<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例項引數
|
$(‘#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
---------------------------------------------------------------------------------------------------
Web上傳檔案是一個很常用的功能,試用過不少上傳元件,要麼是每次只能選擇一個檔案,要麼是選擇了檔案後不能取消,直接上傳,要麼就是對檔案、佇列等限制支援不佳。面對這麼多問題,Uploadify外掛全部都能實現。
Uploadify是一個jQuery外掛,你可以很容易的為你的網站新增多個檔案上傳功能。它有兩個不同的版本(HTML5和Flash)允許你靈活選擇為您的網站實現各種場景下的功能和需求。它的優點如下:
多檔案上傳
Uploadify的主要好處是它允許多個檔案上傳,支援ctrl多選
支援拖放檔案
檔案上傳的html5版本(uploadifive)允許拖放檔案到佇列,實現拖放上傳
支援上傳進度
當檔案被上傳時,進度條顯示當前的上傳進度,多個檔案分別顯示各個檔案的上傳進度
自定義上傳限制
設定檔案大小限制,檔案計數限制,檔案型別限制,同時上傳限制,確保我們的伺服器安全
最大程度定製化
Uploadify幾乎各方面功能都可以完全定製,這樣你就可以根據具體需要,自由地建立你確實需要的uploader。
當然Uploadify也有缺陷,比如很多瀏覽器預設是禁用flash的,也不支援斷點上傳等,實現程式碼如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
$( function () { $( "#file_upload_1" ).uploadify({ height : 30, //高度 swf : '/uploadify/uploadify.swf' , //指定swf檔案 uploader : '/uploadify/uploadify.php' , //後臺處理的url width : 120, //寬度 buttonText: '上傳圖片' , //按鈕顯示的文字 fileTypeExts: '*.*' , //上傳檔案的型別,預設為所有檔案,多個型別使用;分割'*.gif;
*.jpg; *.png' fileTypeDesc: 'Image Files' , //可選擇檔案的描述,在瀏覽視窗底部的檔案型別下拉選單中顯示的文字 formData: { 'someKey' : 'someValue' , 'someOtherKey' :1}, //傳送給後臺的其他引數通過formData指定 //上傳檔案頁面中,你想要用來作為檔案佇列的元素的id, 預設為false,自動生成,不帶# queueID: 'fileQueue' , auto: true , //選擇檔案後自動上傳 multi: true , //設定為true將允許多檔案上傳 buttonClass: 'xttblog' , //上傳按鈕的樣式 buttonImage: '' , //按鈕的圖片路徑 buttonCursor: 'hand' , //滑鼠指標懸停在按鈕上的樣子 checkExisting: false , //檔案的路徑,檢查目標資料夾中是否已上載的檔案的名稱.如果檔名不存在,該指令碼將返回1,如果檔名存在或0 debug: true , //開啟swfupload除錯模式 fileObjName: '' , //後臺獲取檔案物件 fileSizeLimit: '' , //允許檔案上傳的最大大小.這個值可以是數字或字串.如果它是一個字串,它接受一個單位(B,KB,MB,GB) //預設單位為KB。您可以將此值設定為0,無限制 itemTemplate: '' , //選擇不同的HTML模板,新增上傳檔案到上傳佇列。主要有4種模板: //instanceID(uploadify例項id)、fileID(檔案id)、fileName(檔名字)、fileSize(檔案大小).例如:${fileName} method: 'POST' , //POST或GET overrideEvents:[ 'onUploadProgress' ], //重寫事件,onUploadProgress進度條不更新 preventCaching: true , //是否快取,預設為true不快取 progressData: 'percentage' , //進度條percentage百分百、speed上傳速度更新,預設為percentage queueID: false , //預設為false佇列id動態生成,可以為DOM元素的id,設定佇列樣式 queueSizeLimit:999, //佇列大小預設為999,超過將觸發onselecterror事件,和uploadLimit類似 removeCompleted: true , //預設為true上傳完成後是否刪除上傳佇列 removeTimeout:3, //上傳完成後,延遲3秒刪除佇列 requeueErrors: true , //預設為false,如果為true上傳失敗後將繼續嘗試再次上傳 successTimeout:30, //檔案上傳成功後服務端應返回成功標誌,此項設定返回結果的超時時間 uploadLimit:999, //最大上傳檔案數量,如果達到或超出此限制將會觸發onUploadError事件 onCancel : function (file) { //移除檔案時觸發 }, onClearQueue: function (queueItemCount){ //當呼叫函式cancel方法時觸發,queueItemCount引數為被取消上傳的檔案數量 }, onDestroy: function (queueItemCount){ //當destory方法被呼叫時觸發 }, onDialogClose: function (queueData){ //當檔案瀏覽框關閉時觸發,如果將此事件被重寫,則當向佇列新增檔案上傳出錯時不會彈出錯誤訊息提示 //queueData物件包含如下屬性: //filesSelected 檔案選擇對話方塊中共選擇了多少個檔案 //filesQueued 已經向佇列中新增了多少個檔案 //filesReplaced 已經向佇列中替換了多少個檔案 //filesCancelled 取消了多少個檔案 filesErrored 出錯了多少個檔案 }, onDialogOpen: function (){ //當檔案選擇對話方塊彈出時立即出發,但可能在檔案選擇對話方塊被關閉之前並不能全部執行 }, onDisable: function (){ //當disable方法禁用Uploadify上傳按鈕時被呼叫時觸發 }, onEnable: function (){ //當disable方法啟用Uploadify上傳按鈕時被呼叫時觸發 }, onFallback: function (){ //當Uploadify初始化過程中檢測到當前瀏覽器不支援flash時觸發 }, onInit: function (){ //首次初始化Uploadify結束時觸發 }, onQueueComplete: function (queueData){ //檔案上傳佇列處理完畢後觸發,queueData物件包含如下屬性: //uploadsSuccessful上傳成功的檔案數量 //uploadsErrored上傳失敗的檔案數量 }, onSelect: function (file){ //選擇檔案後向佇列中新增每個上傳任務時都會觸發 }, onSelectError: function (file, errorCode, errorMsg){ //選擇檔案後向佇列中新增每個上傳任務時如果失敗都會觸發 //file檔案物件 //errorCode錯誤程式碼如下: //QUEUE_LIMIT_EXCEEDED任務數量超出佇列限制; //FILE_EXCEEDS_SIZE_LIMIT檔案大小超出限制; //ZERO_BYTE_FILE檔案大小為0 //INVALID_FILETYPE檔案型別不符合要求 //errorMsg錯誤提示,可通過'this.queueData.errorMsg'定製 }, onSWFReady: function (){ //Flash檔案載入成功後觸發 }, onUploadComplete: function (file){ //每個檔案上傳完畢後無論成功與否都會觸發 }, onUploadError: function (file, errorCode, errorMsg, errorString){ //檔案上傳出錯時觸發,引數由服務端程式返回 }, onUploadProgress: function (file, bytesUploaded, bytesTotal, totalBytesUploaded,
totalBytesTotal){ //處理上傳佇列的過程中會多次觸發此事件,每當任務狀態有更新時都會觸發 //file檔案物件 //bytesUploaded已上傳的位元組數 //bytesTotal檔案總位元組數 //totalBytesUploaded當前任務佇列中全部檔案已上傳的總位元組數 //totalBytesTotal當前任務佇列中全部檔案的總位元組數 }, onUploadStart: function (file){ //當檔案即將開始上傳時立即觸發 }, onUploadSuccess: function (file, data, response){ //當檔案上傳成功時觸發 //file檔案物件 //data服務端輸出返回的資訊 //response有輸出時為true,如果無響應為false,如果返回的是false,當超過successTimeout設定的時間後假定為true } }); }); |
uploadify方法用法詳解:
1.cancel(fileID, suppressEvent) 取消佇列中的任務,不管此任務是否已經開始上傳
fileID要取消的檔案ID,如果為空則取消佇列中第一個任務,如果為'*'則取消所有任務
suppressEvent是否阻止觸發onUploadCancel事件,當清空佇列時非常實用
$('#file_upload').uploadify('cancel')取消第一個
$('#file_upload').uploadify('cancel','*')清空佇列
2.destroy()銷燬Uploadify例項並將檔案上傳按鈕恢復到原始狀態
$('#file_upload').uploadify('destroy')銷燬Uploadify例項
3.disable(setDisabled)禁用或啟用檔案瀏覽按鈕
setDisabled – 設定為true表示禁用,false為啟用
$('#file_upload').uploadify('disable',true)禁用按鈕
4.settings(name, value, resetObjects)獲取或設定Uploadify例項引數
name – 屬性名稱,如果只提供屬性名稱則表示獲取其值
value – 屬性值
resetObjects – 設定為true時,更新postData物件將清空現有的值。否則,新的值將被新增到其末尾
$('#file_upload').uploadify('settings','buttonText','BROWSE');
$('#file_upload').uploadify('settings','buttonText'));
5.stop()停止當前正在上傳的任務
$('#file_upload').uploadify('stop')停止上傳
6.upload(fileID)立即上傳指定的檔案
如果fileID為’*'表示上傳所有檔案,要指定上傳多個檔案,則將每個檔案的fileID作為一個引數
$('#file_upload').uploadify('upload','*')開始上傳所有檔案
相關文章
- 函式引數詳解函式
- JavaScript之Arguments物件暫存函式引數與屬性JavaScript物件函式
- PB TreeView 屬性,事件詳解(轉)View事件
- js-arguments 函式引數物件詳解JS函式物件
- window.open()函式引數用法詳解函式
- python函式星號引數詳解Python函式
- HTML中object param 有關flash屬性引數詳解HTMLObject
- OpenCV中的findContours函式引數詳解OpenCV函式
- 函式、引數、解構函式
- Lotus Notes/domino事件、屬性、函式和命令事件函式
- Go語言Slice作為函式引數詳解Go函式
- Python print函式引數詳解以及效果展示Python函式
- $.ajax()方法引數詳解
- JavaScript 事件處理函式傳遞引數JavaScript事件函式
- onclick事件處理函式傳遞引數事件函式
- 命令列引數解析函式getopt_long() 使用詳解命令列函式
- JavaScript為事件處理函式傳遞引數JavaScript事件函式
- 函式引數 引數定義函式型別函式型別
- gets函式的不安性詳解函式
- JavaScript 函式引數解構物件JavaScript函式物件
- 方法(函式)的定義與引數函式
- 函式定義、函式的引數、函式的預設引數函式
- JavaScript 函式 name 屬性JavaScript函式
- JavaScript 函式 length 屬性JavaScript函式
- zookeeper入門(3)API常用函式功能與引數詳解API函式
- JQuery中$.ajax()方法引數詳解jQuery
- javascript如何給事件處理函式傳遞引數JavaScript事件函式
- JS 陣列(Arrey)屬性以及方法詳解JS陣列
- display屬性詳解
- cookie屬性詳解Cookie
- 函式解構引數小細節函式
- JavaScript函式引數解構賦值JavaScript函式賦值
- javascript的函式的引數是區域性變數JavaScript函式變數
- php函式引用傳遞引數的方法PHP函式
- CSS字型屬性和文字屬性詳解CSS
- js如何給事件繫結的函式傳遞引數JS事件函式
- Javascript函式引數求值——Thunk函式JavaScript函式
- 函式基礎和函式引數函式