swfupload客戶端是一款基于系統的上傳文件的輸送軟件,幫助技術者與開發者以及使用者可以進行完善的系統上傳模式,改變了原先模式更加快捷方便,有需要的用戶歡迎前來極光下載站體驗使用!
swfupload是一個客戶端文件上傳工具,最初由vinterwebb.se開發,它通過整合flash與java script技術為web開發者提供了一個具有豐富功能繼而超越傳統標簽的文件上傳模式。swfupload不同于其他基于flash構建的上傳工具,它有著優雅的代碼設計,開發者可以利用xhtml、css和javascript來隨心所欲的定制它在瀏覽器下的外觀;它還提供了一組簡明的javascript事件,借助它們開發者可以方便的在文件上傳過程中更新頁面內容來營造各種動態效果。在使用swfupload之前,請確認你具備一定的javascript和dom知識。在實際開發中,大部分的錯誤都是由于錯誤的設置和低劣的event handlers處理程序所造成的。
1.可以顯示上傳進度
2.良好的瀏覽器兼容性
3.可以同時上傳多個文件
4.類似ajax的無刷新上傳
5.支持flash 8和flash 9
6.兼容其他java script庫 (例如:jquery, prototype等)
1.提供了豐富的事件接口供開發者使用
2.可以在瀏覽器端就對要上傳的文件進行限制
3.用flash進行上傳,頁面無刷新,且可自定義flash按鈕的樣式
4.允許一次上傳多個文件,但會有一個上傳隊列,隊列里文件的上傳是逐個進行的,服務器端接收文件時跟普通的表單上傳文件是一樣的
新增一個上傳頁面,我們放在swfu下,但不一定非要放在swfu下,命名為tutor-1.html。head中插入用于引入swfupload.js的代碼
然我我們還需要一個swfupload占位符和一個上傳按鈕。占位符用于當swfupload載入并初始化后被swfupload按鈕替換的一個dom元素
接著,載入并初始化swfupload.swf。這樣,我們點擊“點我選擇文件”便可以上傳文件了,是不是so easy
這里只提幾個額外經常會用到的,一些邊邊角角的大家可以選擇去看漢化官方文檔
1.filedata,類似于表單上傳控件的name屬性,默認值為filedata。這里不建議修改,因為在linux下的flash,無論怎么修改這個值,都沒有效果
2.post_params, post值。連同上傳的文件一起提交到服務器上,這個東東也是比較有用的,比如可以驗證用戶是否允許上傳文件等,另外可以用swfupload的 addpostparam/setpostparams/removepostparam/addfileparam/removefileparam方 法修改該值,通常在上傳文件額外還需要提交表單信息的時候會特別管用
3.requeue_on_error, 是否將上傳失敗的的文件重新添加到上傳隊列的頂端,默認值為true。當文件上傳失敗或者停止上傳觸發uploaderror事件,是否將上傳失敗的的文 件重新添加到上傳隊列的頂端,當然調用cancelupload方法觸發uploaderror事件,不會將文件重新添加到上傳隊列中,而是會丟棄
4.file_types, 限制上傳的文件類型,這個是非常有用且重要的,默認值為*.*。另外當用戶指向上傳圖片時可以設置 為”*.jpg;*.jpeg;*.gif;*.png;*.bmp;”。另外有一點非常重要的就是,這里只是瀏覽器端限制了上傳的文件類型,服務端依然 要驗證上傳的文件類型,否則可能是很危險的
5.file_upload_limit,允許同時上傳文件的數量,默認值為0,即不限制。當文件隊列中的文件數,正在上傳的文件以及已經上傳成功的文件數只和超過了該值后,便不在允許添加文件
6.file_queue_limit,允許隊列存在的文件數量,默認值為0,即不限制。當文件隊列中的文件數超過該值便不再允許添加文件
7.button_action,點擊swfupload按鈕執行的動作,默認值為swfupload.button_action.select_files(多文件上傳)
1.首先引入相應的js文件
2.實例化swfupload對象,傳入一個配置參數對象進行各方面的配置
3.點擊swfupload提供的flash按鈕,彈出文件選取窗口選擇要上傳的文件
4.文件選取完成后符合規定的文件會被添加到上傳的隊列里
5.調用startupload方法讓隊列里文件開始上傳
6.文件上傳過程中會觸發相應的事件,開發者利用這些事件來更新ui、處理錯誤、發出提示等等
-所上傳的文件體積并未超出swfupload所設置的數值,但為何無法成功上傳
通常這是由于服務器端的限制所造成的,以apache+php為例,請修改php.ini中的post_max_size與upload_max_filesize兩項設置
-在帶有session驗證的網站后臺中swfupload無法正常工作
這是因為swfupload在上傳時相當于重新開辟了一個新的session進程,因此無法與原有程序的session保持一致,這就需要在上傳時傳遞原有程序的sessionid,根據它來“找回”其應有的session
-關于swfupload上傳中文文件名亂碼的問題
實際上是由于編碼的問題造成的,程序使用的utf-8,文件名傳遞時也是這種編碼,因此造成亂碼或文件不能保存,僅是需要修改接收文件,以php為例,upload.php中
這樣即可解決
網友評論