Struts2學習筆記之文件上傳

Struts2學習筆記

第九記:文件上傳

(1)、單個文件上傳

     1-1:實現步驟:

         1)、在WEB-INF下的lib目錄中添加commons fileupload 1.2.1.jar和commons Io 1.3.2.jar

             文件下載路徑:http://commons.apache.org/

         2)、在文件上傳的Action中添加上傳文件的字段

             如:private File upfile;

                    private String fileName;.....

         3)、編寫上傳的方法

           public  String upload() throws Exception{

                String realpath=ServletActionContext.getServletContext().getRealPath("/images");

                File file=new File(realpath);

                if(!file.exists())file.mkdirs();

               FileUtils.copyFile(file, new File("/upload/images"));

               return "SUCCESS";

         }

      1-2:編寫上傳表單

          <form  enctype="multipart/form-data"  method="post" action="file_upload">

                   <input type="file"  name="upfile"/ ><input type="text"  name="fileName"/ ><input type="submit" value="上傳"/>

          </form>

      1-3:編寫Action代碼

          public class FileUploadAction{

                    private File upfile;

                    private String fileName;

                    public  void  setUpfle (File upfile){

                          this.upfile=upfile;

                    }

                    public File  getUpfile(){

                          return this.upfile;

                   }

                     public  void  setFileName(String fileName){

                          this.fileName=fileName;

                    }

                    public String getFileName(){

                          return this.fileName;

                   }

                   public  String execute() throws Exception{

                            String realpath=ServletActionContext.getServletContext().getRealPath("/images");

                             System.out.println(realpath);//查看文件的真實路徑

                             if(upfile!=null){

                                    File  savefile=new File(new File(realpath),fileName);

                                    if(!savefile.getParentFile().exists())savefile.getParentFile().mkdirs();

                                   FileUtils.copyFile(upfile, savefile);

                             }

                          return "SUCCESS";

                  }

           }

      1-4:設置文件上傳大小

             在struts.xml 中配置常量參數,避免文件過大上傳失敗。

            <constant  name="Struts.multipart.maxSize"   value="10701096"/>//設置最大上傳爲10MB

(2)、多個文件上傳

        2-1:編寫多個上傳文件選擇

     <form  enctype="multipart/form-data"  method="post" action="file_upload">

       文件1:  <input type="file"  name="upfile"/ ><input type="text"  name="fileName"/ ><input type="submit" value="上傳"/><br/>

       文件2:  <input type="file"  name="upfile"/ ><input type="text"  name="fileName"/ ><input type="submit" value="上傳"/><br/>

       文件3:  <input type="file"  name="upfile"/ ><input type="text"  name="fileName"/ ><input type="submit" value="上傳"/><br/>

      </form>

          注:字段名稱一致,組合爲數組類型提交到後臺。

        2-2:將屬性字段設置爲數組類型

        public class FileUploadAction{

                    private File upfile [];

                    private String fileName [];

                    public  void  setUpfle (File [] upfile){

                          this.upfile=upfile;

                    }

                    public File  getUpfile(){

                          return this.upfile;

                   }

                     public  void  setFileName(String [] fileName){

                          this.fileName=fileName;

                    }

                    public String getFileName(){

                          return this.fileName;

                   }

                   public  String execute() throws Exception{

                            String realpath=ServletActionContext.getServletContext().getRealPath("/images");

                             System.out.println(realpath);//查看文件的真實路徑

                             if(upfile!=null){

                                   File  savedir=new File(realpath);

                                   if(!savedir.exists())savedir.mkdirs();

                                   for(int i=0;i<upfile.length;i++){//循環保存文件

                                          File  savefile=new File(savedir,fileName[i]);
                                          FileUtils.copyFile(upfile[i], savefile);

                                  }

                             }

                          return "SUCCESS";

                  }

           }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章