隨筆 - 115  文章 - 481  trackbacks - 0
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(19)

          隨筆檔案(115)

          文章檔案(4)

          新聞檔案(1)

          成員連接

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜


            在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)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 宜兰市| 杭锦旗| 永登县| 隆化县| 宜良县| 新绛县| 应用必备| 平和县| 固镇县| 景东| 巴彦县| 工布江达县| 宣武区| 玉屏| 泸溪县| 湘西| 寿宁县| 荣昌县| 喀什市| 花垣县| 台州市| 郁南县| 水城县| 绥芬河市| 信阳市| 南丰县| 肇州县| 东阳市| 玉溪市| 晋江市| 囊谦县| 伊金霍洛旗| 霍林郭勒市| 嘉峪关市| 通道| 柳江县| 开江县| 牡丹江市| 平顺县| 沙坪坝区| 靖州|