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

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

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

    漁人碼頭

    天行健,君子以自強(qiáng)不息。地勢(shì)坤,君子以厚德載物。
    posts - 12, comments - 16, trackbacks - 0, articles - 43
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    Struts的文件上傳

    Posted on 2007-01-16 17:50 Fisher 閱讀(247) 評(píng)論(0)  編輯  收藏 所屬分類: Struts

    最近剛做完一個(gè)項(xiàng)目,用Struts1.1做的。從不懂,到熟練使用,都靠參考CSDN的一些文檔。但是文章上講的并不一定適合自己,所以我把我自己做的一些東西拿上來給大家看看,互相交流一下。如果您有跟好的方法,可以和我聯(lián)系。
    MSN:whw_dream (AT) hotmail.com

    Struts的文件上傳
    本文用的是Struts1.1的org.apache.struts.upload.FormFile類。很方便,不用自己寫。也不用寫一個(gè)jsp調(diào)用jspsmartupload就可以搞定。

    選擇上傳文件頁面:selfile.jsp


    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
    <html:html>
    <html:form action="/uploadsAction.do" enctype="multipart/form-data">
    <html:file property="theFile"/>
    <html:submit/>
    </html:form>
    </html:html>

    UpLoadAction.java
    import java.io.*;
    import javax.servlet.http.*;
    import org.apache.struts.action.*;
    import org.apache.struts.upload.FormFile;

    /**
    ?* <p>Title:UpLoadAction</p>
    ?* <p>Description: QRRSMMS </p>
    ?* <p>Copyright: Copyright (c) 2004 jiahansoft</p>
    ?* <p>Company: jiahansoft</p>
    ?* @author wanghw
    ?* @version 1.0
    ?*/

    public class UpLoadAction extends Action {
    ? public ActionForward execute(ActionMapping mapping,
    ?????????????????????????????? ActionForm form,
    ?????????????????????????????? HttpServletRequest request,
    ?????????????????????????????? HttpServletResponse response)
    ????? throws Exception {
    ??? if (form instanceof uploadsForm) {//如果form是uploadsForm
    ??????? String encoding = request.getCharacterEncoding();
    ??????? if ((encoding != null) && (encoding.equalsIgnoreCase("utf-8")))
    ??????? {
    ??????????? response.setContentType("text/html; charset=gb2312");//如果沒有指定編碼,編碼格式為gb2312
    ??????? }
    ??????? UpLoadForm theForm = (UpLoadForm ) form;
    ??????? FormFile file = theForm.getTheFile();//取得上傳的文件
    ??????? try {
    ????????? InputStream stream = file.getInputStream();//把文件讀入
    ????????? String filePath = request.getRealPath("/");//取當(dāng)前系統(tǒng)路徑
    ????????? ByteArrayOutputStream baos = new ByteArrayOutputStream();
    ????????? OutputStream bos = new FileOutputStream(filePath + "/" +
    ????????????????????????????????????????????????? file.getFileName());//建立一個(gè)上傳文件的輸出流
    ????????? //System.out.println(filePath+"/"+file.getFileName());
    ????????? int bytesRead = 0;
    ????????? byte[] buffer = new byte[8192];
    ????????? while ( (bytesRead = stream.read(buffer, 0, 8192)) != -1) {
    ??????????? bos.write(buffer, 0, bytesRead);//將文件寫入服務(wù)器
    ????????? }
    ????????? bos.close();
    ????????? stream.close();
    ??????? }catch(Exception e){
    ????????? System.err.print(e);
    ??????? }
    ??????? //request.setAttribute("dat",file.getFileName());
    ??????? return mapping.findForward("display");
    ??? }
    ??? return null;
    ? }
    }



    UpLoadForm.java

    import javax.servlet.http.HttpServletRequest;
    import org.apache.struts.action.*;
    import org.apache.struts.upload.*;

    /**
    ?* <p>Title:UpLoadForm</p>
    ?* <p>Description: QRRSMMS </p>
    ?* <p>Copyright: Copyright (c) 2004 jiahansoft</p>
    ?* <p>Company: jiahansoft</p>
    ?* @author wanghw
    ?* @version 1.0
    ?*/

    public class UpLoadForm extends ActionForm {
    ? public static final String ERROR_PROPERTY_MAX_LENGTH_EXCEEDED = "org.apache.struts.webapp.upload.MaxLengthExceeded";
    ? protected FormFile theFile;
    ? public FormFile getTheFile() {
    ????? return theFile;
    ? }
    ? public void setTheFile(FormFile theFile) {
    ????? this.theFile = theFile;
    ? }
    ? public ActionErrors validate(ActionMapping mapping, HttpServletRequest request)
    ? {
    ????? ActionErrors errors = null;
    ????? //has the maximum length been exceeded?
    ????? Boolean maxLengthExceeded = (Boolean)
    ????????????? request.getAttribute(MultipartRequestHandler.ATTRIBUTE_MAX_LENGTH_EXCEEDED);
    ????? if ((maxLengthExceeded != null) && (maxLengthExceeded.booleanValue()))
    ????? {
    ????????? errors = new ActionErrors();
    ????????? errors.add(ERROR_PROPERTY_MAX_LENGTH_EXCEEDED, new ActionError("maxLengthExceeded"));
    ????? }
    ????? return errors;

    ? }
    }
    //這是相對(duì)應(yīng)的form,還有其他屬性可以設(shè)置,具體可以參考struts的上傳例子。



    struts-config.xml


    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "<struts-config>
    ? <form-beans>
    ??? <form-bean name="uploadsForm" type="UpLoadForm" />
    ? </form-beans>
    ? <action-mappings>
    ??? <action name="uploadsForm" type="UpLoadAction" path="/uploadsAction">
    ????? <forward name="display" path="/display.jsp" />
    ??? </action>
    ? </action-mappings>
    </struts-config>
    <!--display.jsp就是隨便寫一個(gè)成功頁-->



    Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=181207


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 四虎影视精品永久免费| 国产在线a不卡免费视频| 国产亚洲综合久久系列| 亚洲av最新在线观看网址| 免费视频爱爱太爽了| 亚洲嫩草影院久久精品| 在线观看的免费网站无遮挡| 亚洲午夜精品久久久久久人妖| 黄桃AV无码免费一区二区三区| 亚洲午夜福利精品无码| 国产成人自产拍免费视频| 亚洲人成影院在线观看| 中国一级特黄高清免费的大片中国一级黄色片 | 一级特黄aa毛片免费观看| 亚洲精品无码午夜福利中文字幕| 久久久久久噜噜精品免费直播| 亚洲男同帅GAY片在线观看| a级毛片100部免费观看| 亚洲国产精品SSS在线观看AV| 国产精品视频白浆免费视频| 亚洲婷婷综合色高清在线| 毛色毛片免费观看| 国产成人亚洲毛片| 亚洲综合色婷婷七月丁香| 一级毛片aaaaaa免费看| 日韩亚洲国产高清免费视频| 狼友av永久网站免费观看| 又粗又长又爽又长黄免费视频| 亚洲国产精品无码av| 中文毛片无遮挡高潮免费| 亚洲AV第一成肉网| 国产亚洲精久久久久久无码77777 国产亚洲精品成人AA片新蒲金 | 久久久久亚洲精品天堂| 成年女人男人免费视频播放| 午夜亚洲国产精品福利| 国产亚洲精品美女久久久| 免费无码黄十八禁网站在线观看| 特级毛片全部免费播放a一级| 国产亚洲精久久久久久无码| 青青青国产在线观看免费网站| 免费人妻精品一区二区三区|