<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 閱讀(8058) 評論(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

    主站蜘蛛池模板: 亚洲av无码一区二区三区四区| 成人精品国产亚洲欧洲| 男男AV纯肉无码免费播放无码| 久久亚洲精品高潮综合色a片| 亚洲欧洲中文日韩av乱码| 99久久免费中文字幕精品| 亚洲AV无码专区国产乱码不卡 | 无码中文在线二区免费| 羞羞视频网站免费入口| 亚洲成色999久久网站| 国产高清视频在线免费观看| 国产成年无码久久久免费| 亚洲熟妇成人精品一区| 亚洲高清专区日韩精品| 日韩成人免费aa在线看| 久久免费国产视频| 日韩在线观看免费完整版视频| 久久国产亚洲精品无码| 亚洲精品线路一在线观看| 一区二区无码免费视频网站 | 有色视频在线观看免费高清在线直播 | 成年免费大片黄在线观看岛国| 一级美国片免费看| 亚洲av无码片区一区二区三区| 亚洲情a成黄在线观看| 在线视频观看免费视频18| 嫩草影院在线播放www免费观看| 色天使亚洲综合一区二区 | 久久99免费视频| 亚洲AV成人片无码网站| 亚洲精品在线视频观看| 亚洲热妇无码AV在线播放| 国产亚洲精品免费| 最近中文字幕无免费视频| 免费无码成人AV在线播放不卡| 羞羞视频免费网站日本| 久久精品国产亚洲av天美18| 亚洲人成日本在线观看| 亚洲一区综合在线播放| 亚洲AV无码第一区二区三区 | 国产亚洲A∨片在线观看|