struts2中的上傳文件

這個上傳類可以實現多個上傳,如果不適用數組就是單個上傳了

 public class FileUploadAction extendsActionSupport {
   private File[] fileup;   //上傳的文件
   private String[] fileupContentType; //上傳文件的類型
   private String[] fileupFileName;    //上傳文件的名稱
//fileup是頁面提交過來file的name屬性的值,fileupContentType和fileupFileName爲固定的寫法
   private String path;         //上傳文件的路徑
   private String message;
    public String getMessage() {
    return message;
    }
    public void setMessage(String message) {
       this.message = message;
    }
    public File[] getFileup() {
       return fileup;
    }
    public void setFileup(File[] fileup) {
       this.fileup = fileup;
    }
    public String[] getFileupContentType() {
       return fileupContentType;
    }
    public void setFileupContentType(String[]fileupContentType) {
       this.fileupContentType = fileupContentType;
    }
    public String[] getFileupFileName() {
       return fileupFileName;
    }
    public void setFileupFileName(String[] fileupFileName) {
       this.fileupFileName = fileupFileName;
    }
    public String getPath() {
       return path;
    }
    public void setPath(String path) {
       this.path = path;
    }
    public String execute()
    {
       //獲取服務器要保存文件的絕對路徑
       String p=ServletActionContext.getServletContext().getRealPath(path);
       File pFile=new File(p);
       //判斷如果文件夾不存在的話就創建
       if(!pFile.exists())
       {
           pFile.mkdir();  //創建文件夾
       }
         //循環保存文件
       for(int i=0;i<fileup.length;i++)
       {
           String newfilename=(new Date()).getTime()+fileupFileName[i].substring(fileupFileName[i].lastIndexOf("."));
           //文件上傳
           try {
              FileUtils.copyFile(fileup[i],new File(p,newfilename));
              setMessage("文件上傳成功!");
           } catch(IOException e) {
              setMessage("文件上傳失敗!");
           }
       }
       return "ok";
    }

Struts.xml中的配置信息

<struts>
 <constant name="struts.configuration.xml.reload" value="true"/>
<!-- 這裏要設置允許文件上傳的大小,這是建議設置最大化,這樣上傳時出現異常就會進入input視圖 -->
<constant name="struts.multipart.maxSize" value="99999999999"/>
 
<package name="date" extends="base">
 <action name="fileupload" class="action.FileUploadAction">
<!-- 引用默認的攔截器,通過引用可以設置相應的參數 -->
<interceptor-ref name="defaultStack">
<!-- 設置文件上傳的大小,這裏設置後,還需要設置常量的大小 -->
<param name="fileUpload.maximumSize">2024000</param>
<!-- 設置允許上傳的文件類型,這裏不是設置文件的後綴名,而是文件的MIME類型 -->
<param name="fileUpload.allowedTypes">image/bmp,image/png,image/gif,image/jpeg,image/jpg,image/pjpeg</param>
</interceptor-ref>
 <param name="path">/upload</param>
<result name="ok">/fileupload.jsp</result>
<!--如果要使用input條轉的視圖則需要 Action類繼承ActionSupport,
      在錯誤頁面使用<s:fielderror/>顯示錯誤信息  -->
    <result name="input">/fileuplaoderr.jsp</result>
  </action>
 </package>
頁面的form的提交方式必須設置enctype="multipart/form-data"

發佈了48 篇原創文章 · 獲贊 42 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章