|
在struts中,引入org.apache.struts.upload包,對Apache?Commons?fileupload上傳組件進行封裝處理文件的上傳,Formbean中定義FormFile接口來接收上傳文件。
由于EasyJWeb定位于中小型項目應用,因此簡化了上傳的處理,直接使用Apache?Commons?fileupload來處理上傳。由于框架核心引擎中對上傳的內容已經自動進行了處理,因此,在action中,處理上傳文件跟處理一般的文本字段沒有什么區別!
廢話不多說,直接進入正題: 1、上傳表單 如開源的EasyJF?BBS系統中的上傳示例代碼,html表單部分內容如下: <form?name="EditForm"?enctype="multipart/form-data"?method="post"?action="/bbsUpload.ejf"?style="height:0px"> ?<input?type="file"?name="file"??style="width:100%"> ?<input?type="hidden"?name="easyJWebCommand"?value="upload">? ?<input?type="hidden"?name="parentObj"> ?<input?type="hidden"?name="types"> 附件說明:<input?type="text"?name="intro"?size=20>
</form>
其中enctype="multipart/form-data"必須的,method="post"也必須。 ????這個表單是一個混合表單,有type=file的文件上傳框,也有type=text或hidden的普通文本框。
2、接收單個上傳文件的java代碼
下面我們看看文件上傳處理模塊bbsUpload中的java代碼.
??com.easyjf.bbs.action.UploadAction.java ??import?org.apache.commons.fileupload.FileItem;
public?class?UploadAction?implements?IWebAction?{ ???public?Page?execute(WebForm?form,?Module?module)?throws?Exception?{ FileItem file=(FileItem)form.get("file");//文件對象 ?????????String?intro=(String)form.get("intro");//文本對象 if(file!=null) ???????{ ????????//得到上傳文件,對上傳文件進行處理,這里省略代碼N行 ???????} ???} }?
3、接收處理多個文件上傳的java代碼 com.easyjf.bbs.action.UploadAction.java ?? Iterator?it?=?form.getFileElement().keySet().iterator(); while(it.hasNext())?{ String?fieldName?=?(String)?it.next();//表單字段名 FileItem?file?=?(FileItem)?form.get(fieldName);//文件對象 if(file!=null) { //得到上傳文件,對上傳文件進行處理,這里省略代碼N行
}
}
4、關于org.apache.commons.fileupload.FileItem 這是apache的開源上傳組件apache?commons-fileupload中的一個類,EasyJWeb核心引擎使用他來處理上傳文件的。 ???通過FileItem類我們可以得到上傳文件的大小、路徑、文件名等信息,也可以通過FilteItem類的write方法把上傳文件保存到服務器中。如論壇中的代碼:
file.write(new?File(filePath?+?fileName)); \\示例file.write(new?File("c:\\test\up.txt"));
詳細請看apache官方網站.地址:http://jakarta.apache.org/commons/fileupload/
5、上傳中的注意事項
需要對上傳文件進行過濾,以防黑客上傳如.jsp的木馬文件到服務器上。若上傳來的文件不希望用戶直接通過url訪問,則可考慮保存到Web應用程序web-inf目錄下,或者web應用程序以外的目錄。
EasyJWeb簡介
EasyJWeb是基于java技術,應用于WEB應用程序快速開發的MVC框架,框架設計構思來源于國內眾多項目實踐,充分借簽了當前主要流行(主流)的開源Web框架(Struts、JSF、Tapestry?、Webwork),吸取了其優點及精華,利用Velocity作為模板頁面引擎,是一個實現了頁面及代碼完全分離的MVC開發框架,是一個旨在于為中小型Web應用系統提供快速開發實踐的簡易Web框架。
EasyJF開源團隊于2006年初才開始建設,因此當前整個開發團隊組建以及所發布的作品,都顯得極不成熟。EasyJWeb仍然處于測試階段,請廣大的Java愛好者多多批評及建議。同進也非常歡迎您能加入到我們的國產開源隊伍中。
EasyJWeb官方網址:www.easyjf.com ????EasyJF團隊官方網址:www.easyjf.com?
|
|
posted on 2006-03-28 22:35
簡易java框架 閱讀(454)
評論(0) 編輯 收藏