<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 閱讀(8060) 評論(22)  編輯  收藏 所屬分類: java

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

    ?

    制作環(huán)境:

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

    ?

    步驟:

    ??? 新建工程 upload

    ?

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

    ?

    ??? 新建 一個 jsp + action 這里將使用動態(tài)的 ActionForm

    ?

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

    ?

    ??? 修改動態(tài) 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" ,這樣才可以提交二進(jìn)制類型的文件

    ?

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

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

    ?????? 改為

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

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

    ?

    ??? 修改 upfileAction.java 文件,修改后的內(nèi)容如下:

    ?

    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");

    ??????? // 取當(dāng)前系統(tǒng)路徑

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

    ??????? try {

    ??????????? // 轉(zhuǎn)換文件為數(shù)據(jù)流

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

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

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

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

    ??????????? // 將文件寫入網(wǎng)站根目錄下

    ??????????????????????????? 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();

    ??? }

    ?

    }

    ?

    ??? 現(xiàn)在可以進(jìn)行測試了

    ?

    ??? 這時將會發(fā)現(xiàn),提交的文件及文件名稱都是亂碼!下面將解決亂碼

    ?

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

    ?

    ??? web.xml 文件中加入以下配置內(nèi)容,過濾器的編碼設(shè)置為 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 的端口前也加入此配置內(nèi)容,關(guān)于詳細(xì)的和IIS集成方法和亂碼解決請查看第二十一集的錄像

    ?

    ??? 現(xiàn)在重新啟動服務(wù),測試

    ?

    ??? 一切正常!

    ?

    ??? 本集教程到些結(jié)束!!!

    Feedback

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

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

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

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

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

    2006-07-19 17:18 by 的哥
    謝謝!0ksonic 的精彩教程,使我這個初學(xué)者入門快多了
    好了好多彎路,有點(diǎn)直通車的感覺。。。~~
    其實(shí) 我認(rèn)為做開發(fā)最好的方式就是 學(xué)習(xí)這種可視化的教程,通過demo實(shí)戰(zhàn)能力強(qiáng)多了~

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

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

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

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

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

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

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

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

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

    2006-11-01 15:43 by dy

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

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

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

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

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

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

    2006-12-06 13:59 by javaBoy
    hehe

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    2007-05-28 10:05 by 馮偉強(qiáng)
    勞苦功高!

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

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

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

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

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

    2008-03-13 12:09 by kingvax
    thx

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

    Copyright © oksonic

    主站蜘蛛池模板: 99久久亚洲综合精品成人网| 国产亚洲AV无码AV男人的天堂| 国产精品免费_区二区三区观看| 免费永久国产在线视频| 国产亚洲精品无码拍拍拍色欲 | 亚洲欧洲日本在线| 亚洲AV无码一区二区二三区软件 | 亚洲精品国产第1页| 亚洲人成网站在线播放2019| 日韩a毛片免费观看| 免费精品99久久国产综合精品| 国产曰批免费视频播放免费s| 好爽又高潮了毛片免费下载| 亚洲国产一区视频| 亚洲另类激情综合偷自拍| 亚洲日韩中文字幕一区| 国产乱妇高清无乱码免费| 91成人免费观看| 国产午夜影视大全免费观看| 亚洲欧洲无码AV电影在线观看| 亚洲国产成人无码av在线播放| 美女被羞羞网站免费下载| 91精品手机国产免费| 国产精品无码一区二区三区免费| 久久九九亚洲精品| 亚洲日韩国产二区无码| 中文字幕无码免费久久9一区9| 97人妻无码一区二区精品免费| 亚洲欧洲久久久精品| 亚洲AV无码成人专区| 国产在线精品观看免费观看| 中文字幕av无码无卡免费| 亚洲熟女少妇一区二区| 亚洲乱码在线卡一卡二卡新区 | 黄人成a动漫片免费网站| 久久伊人免费视频| 全亚洲最新黄色特级网站 | 精品免费久久久久久成人影院| 国产AV无码专区亚洲精品| 亚洲AV无码一区二区三区网址| 免费国产成人18在线观看|