在Struts2中使用Uploadify組件上傳文件

Uploadify是一個基於Jquery的文件上傳組件,官網http://www.uploadify.com/能夠在官網得到該組件,運行演示示例,下載幫助文檔。 
    做爲Web前端的加強技術,Jquery給用戶以更好的體驗和交互,加強富互聯網客戶端特效,而基於Jquery的Uploadify更是將文件上傳效果發揮到極致。 
    一個項目下,須要開發一個上傳文件的應用,項目基於Struts2,傳統使用input標籤的file屬性上傳是同步的,沒有實時效果的。爲了加強體驗,一個偶然的機會讓我發現了這個組件Uploadify。可是官方僅提供基於PHP的上傳源碼,那麼在Struts2下的,就得自行研究了。 
    廢話很少說,讓咱們一步一步領略Uploadify帶來的不一樣感覺。 
1.支持的文件 
jquery.js,jquery.uploadify.js,uploadify.css;怎得到就很少說了。 
2.HTML頁面源碼 
Html代碼   收藏代碼
  1. <style type="text/css">  
  2. div.demo {  
  3.     padding: 20px;  
  4.     border: 1px solid #E5E5E5;  
  5.     margin-bottom: 20px;  
  6.     #FFFFFF;  
  7. }  
  8. </style>  


Js代碼   收藏代碼
  1. <script language="javascript" src="/js/swfobject.js"></script>  
  2. <script type="text/javascript">  
  3. $(document).ready(function() {  
  4.     $("#upload").uploadify({        'uploader'       : '${base}/images/swf/uploadify.swf',  
  5.     'script'         : 'disk!uploadFile.action',  
  6.     'cancelImg'      : '${base}/images/cancel.png',  
  7.     'fileDataName'   : 'upload',  
  8.     'folder'         : '/',  
  9.     'displayData'    : 'speed',  
  10.     'buttonText'     : 'Browse Files',  
  11.     'auto'           : false,  
  12.     'multi'          : true,  
  13.     'sizeLimit'      : 1073741824,  
  14.     'simUploadLimit' : 3  
  15.     });  
  16. });  
  17. </script>  


Html代碼   收藏代碼
  1. <div class="demo" style="display:none" id="upload_file">  
  2. <p><strong>文件上傳</strong></p>  
  3. <input id="upload" name="upload" type="file" />  
  4. <href="javascript:$('#upload').uploadifyUpload();">開始上傳</a> | <href="javascript:$('#upload').uploadifyClearQueue();">清除隊列</a>  
  5. </div>  
解釋: 
1).css是文件上傳框的效果,很少說 
2).重點是JS代碼,基於Jquery的技術,函數頭就很少解釋了。 
    uploader:是組件自帶的flash,用於打開選取本地文件的按鈕 
    scrpit:處理上傳的路徑,這裏使用Struts2,固然是XXX.action 
    cancelImg:取消上傳文件的按鈕圖片,就是個叉叉 
    fileDataName:和input的name屬性值保持一致就好,Struts2就能處理了 
    folder:沒研究這個,根據幫助文檔就寫上/ 
    displayData:有speed和percentage兩種,一個顯示速度,一個顯示完成百分比 
    buttonText:出如今Flash上的文字,暫時還不支持中文 
    auto:是否選取文件後自動上傳 
    multi:是否支持多文件上傳 
    sizeLimit:限制文件的大小,這裏是1G,作測試 
    simUploadLimit:每次最大上傳文件數 
3).最後的html段提供兩個功能按鈕,點擊開始上傳和清除上傳隊列 
3.Action源碼 
Java代碼   收藏代碼
  1.     private File upload;//和HTML中input標記name同名  
  2.     private String uploadFileName;//Struts2攔截器得到的文件名  
  3.     public void setUpload(File upload) {  
  4.         this.upload = upload;  
  5.     }  
  6.     public void setUploadFileName(String uploadFileName) {  
  7.         this.uploadFileName = uploadFileName;  
  8.     }  
  9. public String uploadFile() throws Exception {  
  10.                   //省略數據處理步驟  
  11.         upload.renameTo(new File(realURL));  
  12.                   //省略數據庫寫入步驟  
  13.         return "uploadFile";  
  14.     }  


效果圖 
 
相關文章
相關標籤/搜索