<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    速動畫教程第二十二集 使用Struts上傳文件

    Posted on 2006-07-05 23:30 oksonic 閱讀(8067) 評論(22)  編輯  收藏 所屬分類: java

    速動畫教程第二十二集 使用Struts上傳文件

    ?

    制作環境:

    ??? Eclipse3.1.1? 、 MyEclipse4.1? 、 Tomcat5.5.x

    ?

    步驟:

    ??? 新建工程 upload

    ?

    ??? 添加 Struts 框架,使用 Struts1.2 版本

    ?

    ??? 新建 一個 jsp + action 這里將使用動態的 ActionForm

    ?

    ??? 在新建表單對像時使用一個文件名和一個文件對像進行提交

    ?

    ??? 修改動態 From 的類型為 org.apache.struts.upload.FormFile

    ?

    ??? < form-bean name = "upfileForm" type = "org.apache.struts.action.DynaActionForm" >

    ????? < form-property name = "filename" type = "java.lang.String" />

    ????? < form-property name = "filedata" type = "java.lang.String" />

    ??? </ form-bean >

    ?

    ??? 改為

    ?

    ??? < form-bean name = "upfileForm" type = "org.apache.struts.action.DynaActionForm" >

    ????? < form-property name = "filename" type = "java.lang.String" />

    ????? < form-property name = "filedata" type = " org.apache.struts.upload.FormFile " />

    ??? </ form-bean >

    ?

    ??? 修改 upfile.jsp 文件,在<Form> 中加入 enctype = "multipart/form-data" ,這樣才可以提交二進制類型的文件

    ?

    ??? 修改文件第一行代碼

    ?????? <%@ page language = "java" %>

    ?????? 改為

    ??? <%@ page contentType = "text/html;charset=UTF-8" language = "java" %>

    ?????? 這里將使用 UTF-8 的編碼格式

    ?

    ??? 修改 upfileAction.java 文件,修改后的內容如下:

    ?

    package com.test.struts.action;

    ?

    import java.io.FileNotFoundException;

    import java.io.FileOutputStream;

    import java.io.IOException;

    import java.io.InputStream;

    import java.io.OutputStream;

    ?

    import javax.servlet.http.HttpServletRequest;

    import javax.servlet.http.HttpServletResponse;

    ?

    import org.apache.struts.action.Action;

    import org.apache.struts.action.ActionForm;

    import org.apache.struts.action.ActionForward;

    import org.apache.struts.action.ActionMapping;

    import org.apache.struts.action.DynaActionForm;

    import org.apache.struts.upload.FormFile;

    ?

    /**

    ?* MyEclipse Struts

    ?* Creation date: 07-05-2006

    ?*

    ?* XDoclet definition:

    ?* @struts.action path="/upfile" name="upfileForm" input="/upfile.jsp" scope="request" validate="true"

    ?*/

    public class UpfileAction extends Action {

    ?

    ??? // --------------------------------------------------------- Instance Variables

    ?

    ??? // --------------------------------------------------------- Methods

    ?

    ??? /**

    ??? ?* Method execute

    ??? ?* @param mapping

    ??? ?* @param form

    ??? ?* @param request

    ??? ?* @param response

    ??? ?* @return ActionForward

    ??? ?*/

    ??? public ActionForward execute(

    ?????? ActionMapping mapping,

    ?????? ActionForm form,

    ?????? HttpServletRequest request,

    ?????? HttpServletResponse response) {

    ?????? DynaActionForm upfileForm = (DynaActionForm) form;

    ?????? // 聲明并獲取對像

    ?????????????????? String filename = upfileForm.getString("filename");

    ??????? // 輸出文件名

    ?????????????????? System.out.println(filename);

    ??????? FormFile filedata = (FormFile) upfileForm.get("filedata");

    ??????? // 取當前系統路徑

    ?????????????????? String filePath = request.getRealPath("/");

    ??????? try {

    ??????????? // 轉換文件為數據流

    ??????????????????????????? InputStream stream = filedata.getInputStream();

    ??????????? // 建立輸出流

    ??????????????????????????? OutputStream bos = new FileOutputStream(filePath + "/" +

    ??????????????????? filedata.getFileName());

    ??????????? // 將文件寫入網站根目錄下

    ??????????????????????????? int bytesRead = 0;

    ??? ??????? byte[] buffer = new byte[8192];

    ??? ??????? while ( (bytesRead = stream.read(buffer, 0, 8192)) != -1) {

    ??? ??????? bos.write(buffer, 0, bytesRead);

    ??? ??????? }

    ??? ??????? bos.close();

    ??? ??????? stream.close();

    ??????? } catch (FileNotFoundException e) {

    ??????????? // TODO Auto-generated catch block

    ??????????? e.printStackTrace();

    ??????? } catch (IOException e) {

    ??????????? // TODO Auto-generated catch block

    ??????????? e.printStackTrace();

    ??????? }

    ??????? // 返回到提交頁面

    ?????????????????? return mapping.getInputForward();

    ??? }

    ?

    }

    ?

    ??? 現在可以進行測試了

    ?

    ??? 這時將會發現,提交的文件及文件名稱都是亂碼!下面將解決亂碼

    ?

    ??? 增加一個過濾器,過濾器的代碼請查看包中的具體文件

    ?

    ??? web.xml 文件中加入以下配置內容,過濾器的編碼設置為 UTF-8

    ?????? < filter >

    ?????? < filter-name > Set Character Encoding </ filter-name >

    ?????? < filter-class > com.test.SetCharacterEncodingFilter </ filter-class >

    ?????? < init-param >

    ?????????? < param-name > encoding </ param-name >

    ?????????? < param-value > UTF-8 </ param-value >

    ?????? </ init-param >

    ??? </ filter >

    ??? < filter-mapping >

    ?????? < filter-name > Set Character Encoding </ filter-name >

    ?????? < url-pattern > /* </ url-pattern >

    ??? </ filter-mapping >

    ??? < filter-mapping >

    ?????? < filter-name > Set Character Encoding </ filter-name >

    ?????? < servlet-name > action </ servlet-name >

    ??? </ filter-mapping >

    ?

    ??? 配置 Tomcat 的 server.xml 文件,文件在 Tomcat_Home/conf 中

    ?

    ??? 在端口配置的前面加入 URIEncoding="UTF-8" 如果使用了和IIS集成的話需要在 8009 的端口前也加入此配置內容,關于詳細的和IIS集成方法和亂碼解決請查看第二十一集的錄像

    ?

    ??? 現在重新啟動服務,測試

    ?

    ??? 一切正常!

    ?

    ??? 本集教程到些結束!!!

    Feedback

    # re: 速動畫教程第二十二集 使用Struts上傳文件  回復  更多評論   

    2006-07-06 13:46 by goby
    你可以做一個struts+hibernate分頁顯示數據和分頁顯示查詢數據的教程,讓我們初學者容易上手的,謝謝.
    你所做的教程,我都看了,很好.

    # re: 速動畫教程第二十二集 使用Struts上傳文件  回復  更多評論   

    2006-07-11 09:01 by 常客
    一句話都不說了!!!!!

    # re: 速動畫教程第二十二集 使用Struts上傳文件  回復  更多評論   

    2006-07-19 17:18 by 的哥
    謝謝!0ksonic 的精彩教程,使我這個初學者入門快多了
    好了好多彎路,有點直通車的感覺。。。~~
    其實 我認為做開發最好的方式就是 學習這種可視化的教程,通過demo實戰能力強多了~

    # re: 速動畫教程第二十二集 使用Struts上傳文件  回復  更多評論   

    2006-07-27 16:08 by sfsf
    無語

    # re: 速動畫教程第二十二集 使用Struts上傳文件  回復  更多評論   

    2006-07-28 10:41 by wjq
    非常感謝!!!!!
    最新技術希望都能看到教程.

    # re: 速動畫教程第二十二集 使用Struts上傳文件  回復  更多評論   

    2006-08-09 00:00 by lu
    怎么我看不見下載地址?

    # re: 速動畫教程第二十二集 使用Struts上傳文件  回復  更多評論   

    2006-08-18 23:17 by woody
    支持樓主!!!!

    # re: 速動畫教程第二十二集 使用Struts上傳文件  回復  更多評論   

    2006-11-01 15:43 by dy

    com.test.SetCharacterEncodingFilter
    過濾器的代碼在哪

    # re: 速動畫教程第二十二集 使用Struts上傳文件  回復  更多評論   

    2006-11-10 18:02 by a[匿名]
    aaa

    # re: 速動畫教程第二十二集 使用Struts上傳文件  回復  更多評論   

    2006-12-04 15:18 by xiao xiao
    太好了
    有好東西學啦

    # re: 速動畫教程第二十二集 使用Struts上傳文件  回復  更多評論   

    2006-12-06 13:59 by javaBoy
    hehe

    # re: 速動畫教程第二十二集 使用Struts上傳文件  回復  更多評論   

    2007-01-05 14:11 by thinker[匿名]
    upfile.jsp和form修改后的代碼怎么沒列出來啊??lz,能不能帖出來啊!
    我沒看到下載地址啊!

    # re: 速動畫教程第二十二集 使用Struts上傳文件  回復  更多評論   

    2007-01-21 10:43 by dawang
    very good

    # re: 速動畫教程第二十二集 使用Struts上傳文件  回復  更多評論   

    2007-01-31 10:06 by 善良A溫柔I我
    謝謝博主
    辛苦拉

    # re: 速動畫教程第二十二集 使用Struts上傳文件  回復  更多評論   

    2007-04-24 18:16 by wangrucai
    vb 好呀,這在看,這個就是我的老師,

    # re: 速動畫教程第二十二集 使用Struts上傳文件  回復  更多評論   

    2007-04-27 10:48 by yueyue
    好啊!(:

    # re: 速動畫教程第二十二集 使用Struts上傳文件  回復  更多評論   

    2007-05-07 19:47 by kisser
    很好

    # re: 速動畫教程第二十二集 使用Struts上傳文件  回復  更多評論   

    2007-05-21 13:54 by xuechao
    除了感謝 還是感謝

    # re: 速動畫教程第二十二集 使用Struts上傳文件  回復  更多評論   

    2007-05-28 10:05 by 馮偉強
    勞苦功高!

    # re: 速動畫教程第二十二集 使用Struts上傳文件[未登錄]  回復  更多評論   

    2007-07-23 10:02 by qq
    怎么不能下載

    # re: 速動畫教程第二十二集 使用Struts上傳文件  回復  更多評論   

    2007-09-24 20:49 by fenix
    樓主樓主我愛你就像老鼠愛大米呀

    # re: 速動畫教程第二十二集 使用Struts上傳文件  回復  更多評論   

    2008-03-13 12:09 by kingvax
    thx

    posts - 103, comments - 1104, trackbacks - 0, articles - 0

    Copyright © oksonic

    主站蜘蛛池模板: 国产亚洲精品资源在线26u| 天天影院成人免费观看| 中文字幕无码成人免费视频| 亚洲精品乱码久久久久久久久久久久| 成人影片一区免费观看| 亚洲精品无码专区久久久| 永久看日本大片免费35分钟| 亚洲酒色1314狠狠做| 亚洲免费视频观看| 美女尿口扒开图片免费| 亚洲?V无码乱码国产精品 | 国产亚洲成在线播放va| 国产精品视_精品国产免费| 亚洲精品国产av成拍色拍| 德国女人一级毛片免费| 亚洲精华国产精华精华液好用| 国产日产亚洲系列| 久久久久久久岛国免费播放 | 免费一级毛片清高播放| 色多多免费视频观看区一区| 亚洲ⅴ国产v天堂a无码二区| 2021在线观看视频精品免费| 色费女人18女人毛片免费视频| 中文字幕亚洲第一在线| 亚洲无码精品浪潮| 国产一区二区免费| 亚洲国产成人在线视频| 日韩精品免费一区二区三区| 免费看一级一级人妻片 | 亚洲国产精品无码久久久秋霞2| 97无码人妻福利免费公开在线视频| 亚洲色大网站WWW永久网站| 全部免费毛片免费播放| 2021免费日韩视频网| 日韩色视频一区二区三区亚洲| 亚洲综合国产一区二区三区| 免费特级黄毛片在线成人观看| 人与动性xxxxx免费| 亚洲视频在线不卡| 亚洲国产精华液网站w| 亚洲精品成人片在线观看|