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

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

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

    Struts2文件上傳功能開發

    技術要點
    本節代碼詳細說明文件上傳功能的開發流程,介紹知識點如下:
    1. 文件上傳頁面和顯示上傳成功頁面代碼內容。
    2. UploadAction類中實現上傳功能方法和上傳文件屬性介紹。
    3. struts.xml中UploadAction配置,以及字符編碼、文件臨時存放路徑配置。
    4. 上傳后所處路徑和最終上傳成功后效果展示。
    <!---------------------文件名:upload.jsp----------------->
    <%@taglib prefix="s" uri="/struts-tags"%>
    <html>
        
    <head>
            
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
            
    <title>上傳文件</title>
        
    </head>
        
    <body>
        
    <!-- 上傳文件表單定義 -->
        
    <s:form action="upload" method="post" enctype="multipart/form-data">
            
    <tr>
        
    <!-- 上傳文件標簽定義 -->
        
    <td>上傳文件:<s:file name="file"></s:file></td>
        
    </tr>
        
    <tr>
        
    <td>再次上傳文件:<s:file name="file"></s:file></td>
        
    </tr>
        
    <tr>
        
    <td align="left"><s:submit name="submit" value="提交"></s:submit></td>
        
    </tr>
        
    </s:form>
        
    </body>
    </html>
     
    <!-------------------上傳文件成功后結果頁面文件名:result.jsp ----------------->
    <%@taglib prefix="s" uri="/struts-tags"%>
    <html>
        
    <head>
            
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
            
    <title>上傳結果</title>
        
    </head>
        
    <body>
            上傳文件:
            
    <!-- 顯示上傳成功文件名 -->
            
    <s:property value="fileFileName" />
        
    </body>
    </html>
    <!------------------文件名:UploadAction.java ------------------>
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.util.List;

    import org.apache.struts2.ServletActionContext;
    import com.opensymphony.xwork2.ActionSupport;

    //文件上傳Action
    public class UploadAction extends ActionSupport {
        
    //上傳文件存放路徑
        private final static String UPLOADDIR = "/upload";
        
    //上傳文件集合
        private List<File> file;
        
    //上傳文件名集合
        private List<String> fileFileName;
        
    //上傳文件內容類型集合
        private List<String> fileContentType;

        
    public List<File> getFile() {
            
    return file;
        }


        
    public void setFile(List<File> file) {
            
    this.file = file;
        }


        
    public List<String> getFileFileName() {
            
    return fileFileName;
        }


        
    public void setFileFileName(List<String> fileFileName) {
            
    this.fileFileName = fileFileName;
        }


        
    public List<String> getFileContentType() {
            
    return fileContentType;
        }


        
    public void setFileContentType(List<String> fileContentType) {
            
    this.fileContentType = fileContentType;
        }


        
    public String execute() throws Exception {
            
    for (int i = 0; i < file.size(); i++{
                
    //循環上傳每個文件
                uploadFile(i);
            }

            
    return "success";
        }


        
    //執行上傳功能
        private void uploadFile(int i) throws FileNotFoundException, IOException {
            
    try {
                InputStream in 
    = new FileInputStream(file.get(i));
                String dir 
    = ServletActionContext.getRequest().getRealPath(UPLOADDIR);
                File uploadFile 
    = new File(dir, this.getFileFileName().get(i));
                OutputStream out 
    = new FileOutputStream(uploadFile);
                
    byte[] buffer = new byte[1024 * 1024];
                
    int length;
                
    while ((length = in.read(buffer)) > 0{
                    out.write(buffer, 
    0, length);
                }


                in.close();
                out.close();
            }
     catch (FileNotFoundException ex) {
                ex.printStackTrace();
            }
     catch (IOException ex) {
                ex.printStackTrace();
            }

        }

    }
    struts.xml配置文件中有關文件上傳的配置:
    <!--------------------文件名:struts.xml------------------->
    <struts>
     <!-- 系統常量定義,定義上傳文件字符集編碼 -->
     <constant name="struts.i18n.encoding" value="gb2312"></constant>
     <!-- 系統常量定義,定義上傳文件臨時存放路徑 -->
     <constant name="struts.multipart.saveDir" value="c:\"></constant>
     <!-- Action所在包定義 -->
     <package name="C04.4" extends="struts-default">
      <!-- Action名字,類以及導航頁面定義 -->
      <!-- 通過Action類處理才導航的的Action定義 -->
      <action name="upload" class="action.UploadAction">
       <result name="input">/jsp/upload.jsp</result>
       <result name="success">/jsp/result.jsp</result>
      </action>
     </package>
    </struts>

    posted on 2012-11-29 23:47 youngturk 閱讀(316) 評論(0)  編輯  收藏 所屬分類: JSP隨筆Java基礎struts2servlet

    <2012年11月>
    28293031123
    45678910
    11121314151617
    18192021222324
    2526272829301
    2345678

    導航

    統計

    公告

    this year :
    1 jQuery
    2 freemarker
    3 框架結構
    4 口語英語

    常用鏈接

    留言簿(6)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    相冊

    EJB學習

    Flex學習

    learn English

    oracle

    spring MVC web service

    SQL

    Struts

    生活保健

    解析文件

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 噼里啪啦电影在线观看免费高清 | 99在线观看免费视频| 亚洲午夜电影一区二区三区| 在线观看AV片永久免费| 国产亚洲人成在线影院| 国产亚洲成AV人片在线观黄桃| 四虎1515hh永久久免费| 国产亚洲蜜芽精品久久| 午夜亚洲国产理论秋霞| 免费毛片网站在线观看| 国产在线一区二区综合免费视频| 亚洲专区一路线二| 亚洲一区二区高清| 一二三四免费观看在线视频中文版| 深夜福利在线视频免费| 久久99亚洲网美利坚合众国| 日本免费中文字幕在线看| 久久久久久久久久国产精品免费| 亚洲精品成a人在线观看☆| 久久久久亚洲精品美女| 亚洲AⅤ优女AV综合久久久| 成人黄色免费网站| a级毛片免费播放| 自拍偷自拍亚洲精品播放| 亚洲视频中文字幕在线| 亚洲一区无码精品色| 最近2019中文免费字幕| 久久久久久成人毛片免费看| 特级毛片在线大全免费播放| 亚洲六月丁香婷婷综合| 亚洲bt加勒比一区二区| 国产精品亚洲mnbav网站 | 久久爰www免费人成| 亚洲精品国产suv一区88| 亚洲男人的天堂在线| 亚洲国产精品无码久久一线| 亚洲av无码乱码在线观看野外| 很黄很色很刺激的视频免费| 青青操免费在线观看| 人禽伦免费交视频播放| 国产综合激情在线亚洲第一页|