這篇文章給大家介紹如何在Struts2中使用uploadify實(shí)現(xiàn)多文件上傳,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊(cè)、虛擬主機(jī)、營(yíng)銷軟件、網(wǎng)站建設(shè)、河津網(wǎng)站維護(hù)、網(wǎng)站推廣。
導(dǎo)入相關(guān)的CSS JS
css/uploadify/uploadify.css" rel="external nofollow" >
接下來(lái)是 上傳的 JSP 頁(yè)面代碼
這里是最關(guān)鍵的JS 代碼,有注釋
$(function(){ $("#img_file").uploadify({ auto:false,//是否自動(dòng)上傳 height: 30, buttonText:'選擇圖片', cancelImage:'<%=basePath%>img/uploadify/uploadify-cancel.png', swf : '<%=basePath %>js/uploadify/uploadify.swf', // expressInstall:'js/uploadify/expressInstall.swf', uploader : '<%=basePath%>json/fileUploadAction.action', //后臺(tái)處理上傳文件的action width : 120 , 'multi': true, //設(shè)置為true將允許多文件上傳 'filesSelected': '4', queueID:'uploadfileQueue', fileObjName:'img_file', //與后臺(tái)Action中file屬性一樣 /* formData:{ //附帶值 'userid':'111', 'username':'tom', 'rnd':'111' }, */ fileTypeDesc:'上傳文件支持的文件格式:jpg,jpge,gif,png', fileTypeExts:'*.jpg;*.jpge;*.gif;*.png',//*.jpg;*.jpge;*.gif;*.png queueSizeLimit : 4,//只能一次上傳4張圖片 // simUploadLimit:1,//一次可以上傳1個(gè)文件 fileSizeLimit:'2097152',//上傳文件最大值 單位為字節(jié) 2M //返回一個(gè)錯(cuò)誤,選擇文件的時(shí)候觸發(fā) onSelectError:function(file, errorCode, errorMsg){ switch(errorCode) { case -100: alert("上傳的文件數(shù)量已經(jīng)超出系統(tǒng)限制的4個(gè)文件!"); break; case -110: alert("文件 ["+file.name+"] 大小超出系統(tǒng)限制的2M大?。?); break; case -120: alert("文件 ["+file.name+"] 大小異常!"); break; case -130: alert("文件 ["+file.name+"] 類型不正確!"); break; } }, // //上傳到服務(wù)器,服務(wù)器返回相應(yīng)信息到data里 onUploadSuccess:function(file, data, response){ var objs = eval('('+data+')'); var phtml = ""; if($("#imgs span").length==0){ $("#imgs").html(phtml); }else{ $("#imgs span:last").after(phtml); } }, onSelect : function(file) { //alert(file.name); }, //removeCompleted:true,//上傳的文件進(jìn)度條是否消失 requeueErrors:false, // removeTimeout:2,//進(jìn)度條消失的時(shí)間,默認(rèn)為3 progressData:"percentage",//顯示上傳的百分比 onUploadError : function(file,errorCode,errorMsg,errorString,swfuploadifyQueue) { //這里是取消的時(shí)候發(fā)生 // $("#dialog-message").html(errorString); } }); }); //上傳文件 function myUpload(){ $("#img_file").uploadify('upload','*'); }
java 上傳的Action 代碼
/** * 上傳文件的Action * @author wzh * */ @Controller @Scope("prototype") public class FileUploadAction extends BaseAction { private File img_file; private String img_fileContentType;//格式同上"fileName"+ContentType private String img_fileFileName;//格式同上"fileName"+FileName private String savePath;//文件上傳后保存的路徑 private MapdataMap = new HashMap (); @Override /*** * 上傳文件 */ public String execute() throws Exception{ System.out.println("savePath"+getSavePath()); File dir=new File(getSavePath()); System.out.println(dir.getAbsolutePath()); //判斷是否存在路徑 if(!dir.exists()){ dir.mkdirs(); } //當(dāng)前上傳的文件 File file=getImg_file(); //獲得后綴 String ext =FileUtil.getExtensionName(getImg_fileFileName()); String newFileName = UUID.randomUUID()+ext; FileOutputStream fos=new FileOutputStream(getSavePath()+"http://"+newFileName); FileInputStream fis=new FileInputStream(getImg_file()); byte []buffers=new byte[1024]; int len=0; while((len=fis.read(buffers))!=-1){ fos.write(buffers,0,len); } fos.close(); fis.close(); // String uploadFileName = getImg_fileFileName(); dataMap.put("filename",newFileName); return SUCCESS; }
E:/Tomcat6.0/webapps/uploads dataMap
關(guān)于如何在Struts2中使用uploadify實(shí)現(xiàn)多文件上傳就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。