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

    生活保健

    解析文件

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲区小说区图片区QVOD| 成人黄动漫画免费网站视频 | 国产亚洲精aa在线看| 小草在线看片免费人成视久网| 亚洲精品无码AV人在线播放| 成人av片无码免费天天看| 国产亚洲一区二区手机在线观看| 久久免费香蕉视频| 亚洲AV无码乱码在线观看裸奔| 永久免费不卡在线观看黄网站| 亚洲国产人成网站在线电影动漫| 午夜理伦剧场免费| 亚洲国产成人久久| 99视频在线精品免费观看6| 中文字幕亚洲码在线| 国产成人在线观看免费网站| 日本中文字幕免费看| 国产成人A亚洲精V品无码| 免费a级毛片无码a∨免费软件| 亚洲AV无码国产在丝袜线观看| 免费在线视频你懂的| 亚洲AV无码成人网站在线观看| 亚洲性在线看高清h片| 香蕉成人免费看片视频app下载| 亚洲成人福利在线| 韩国二级毛片免费播放| 一级午夜免费视频| 精品亚洲成a人片在线观看少妇| 在线视频观看免费视频18| 国产亚洲精品美女2020久久| 亚洲国产无套无码av电影| 啦啦啦完整版免费视频在线观看 | 国外亚洲成AV人片在线观看| 久久香蕉国产线看免费| 日韩亚洲不卡在线视频中文字幕在线观看 | 久久亚洲精品无码VA大香大香| 永久在线观看免费视频 | 思思久久99热免费精品6| 久久精品亚洲视频| 国内一级一级毛片a免费| 两个人的视频www免费|