前幾周做一個web企業項目,用戶一定要求要有批量上傳功能,而且指明了要和他們的老系統上傳文件功能一樣(老系統是c/s結構,vb做的)。然后沒辦法,想來想去只有flash能做到,于是上網找有沒有這方面的東西,就找到了這個東東——SWFUpload.
官網地址是:http://swfupload.mammon.se/
由于在官網的里例子示范里面只有php,C#,VB.net和ROR的,然后我上javaeye搜了下,好象也不多,只有一篇,而且也是比較高級的,于是只能自己搞了。
完了之后覺得這個東西的確相當不錯,使用感覺很好,我估計我以后做項目可能都要用這玩意了。
代碼我自己做了個war包,很簡單的一個例子,我在tomcat5.5和java5.0環境下測試通過。
包結構如下:
- index.jsp ??
- upload.jsp ??
- js ??
- +-----example_callbacks.js ??
- +-----SWFUpload.js ??
- +-----SWFUpload.swf??
index.jsp upload.jsp js +-----example_callbacks.js +-----SWFUpload.js +-----SWFUpload.swf
以上index.jsp就是
文件上傳
顯示頁面,upload.jsp做上傳功能。js里面的兩個一個是與swf通信的回調函數,一個是本身使用的js文件。
比較重要的一段內容是在index.jsp里面,如下
- var?swfu; ??
- ????window.onload?=?function()?{ ??
- ????swfu?=? new ?SWFUpload({ ??
- ????????upload_script?:? "../upload.jsp" ,?? //調用的上傳功能 ??
- ????????target?:? "SWFUploadTarget" , ??
- ????????flash_path?:? "js/SWFUpload.swf" ,?? //flash所在位置 ??
- ????????allowed_filesize?:? 30720 ,??? //?30?MB ??
- ????????allowed_filetypes?:? "*.*" , ??
- ????????allowed_filetypes_description?:? "All?files..." , ??
- ????????browse_link_innerhtml?:? "選擇" , ??
- ????????upload_link_innerhtml?:? "開始上傳" , ??
- ????????browse_link_class?:? "swfuploadbtn?browsebtn" , ??
- ????????upload_link_class?:? "swfuploadbtn?uploadbtn" , ??
- ????????flash_loaded_callback?:? 'swfu.flashLoaded' , ??
- ????????upload_file_queued_callback?:? "fileQueued" , ??
- ????????upload_file_start_callback?:? 'uploadFileStart' , ??
- ????????upload_progress_callback?:? 'uploadProgress' , ??
- ????????upload_file_complete_callback?:? 'uploadFileComplete' , ??
- ????????upload_file_cancel_callback?:? 'uploadFileCancelled' , ??
- ????????upload_queue_complete_callback?:? 'uploadQueueComplete' , ??
- ????????upload_error_callback?:? 'uploadError' , ??
- ????????upload_cancel_callback?:? 'uploadCancel' , ??
- ????????auto_upload?:? false ??
- ????}) ??
- }??
var swfu; window.onload = function() { swfu = new SWFUpload({ upload_script : "../upload.jsp", //調用的上傳功能 target : "SWFUploadTarget", flash_path : "js/SWFUpload.swf", //flash所在位置 allowed_filesize : 30720, // 30 MB allowed_filetypes : "*.*", allowed_filetypes_description : "All files...", browse_link_innerhtml : "選擇", upload_link_innerhtml : "開始上傳", browse_link_class : "swfuploadbtn browsebtn", upload_link_class : "swfuploadbtn uploadbtn", flash_loaded_callback : 'swfu.flashLoaded', upload_file_queued_callback : "fileQueued", upload_file_start_callback : 'uploadFileStart', upload_progress_callback : 'uploadProgress', upload_file_complete_callback : 'uploadFileComplete', upload_file_cancel_callback : 'uploadFileCancelled', upload_queue_complete_callback : 'uploadQueueComplete', upload_error_callback : 'uploadError', upload_cancel_callback : 'uploadCancel', auto_upload : false }) }
有一點要提醒,要當心這個upload_script屬性,這個值是一個相對地址,
是swf文件相對于上傳功能文件的路徑。這個很容易搞錯
我這個包里upload.jsp就是上傳功能,看代碼就知道了,很原始的一個
文件上傳
。
再就是如果上傳過程中是404錯誤,一般是就是這個upload_script屬性設置錯誤,如果是500錯誤就是上傳文件(upload.jsp)出錯。
具體的配置等等就看官網的論壇吧,常見問題基本都在那里了。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
