2012-10-26 3 views
4

struts2를 사용하여 파일을 업로드하려고합니다.struts2에서 파일 업로드

jsp 페이지에는 파일을 업로드하는 버튼과 Submit 버튼이 있습니다. 프로그램에 오류 메시지가 표시되지 않지만 Submit 버튼을 클릭해도 아무런 변화가 없습니다.

Action 클래스

package com.scrolls.action; 

import com.opensymphony.xwork2.ActionContext; 
import com.opensymphony.xwork2.ActionSupport; 
import java.io.File; 
import java.util.Map; 
import org.apache.commons.io.FileUtils; 

public class UploadAction extends ActionSupport { 

    private File upload; 
    private String uploadContentType; 
    private String uploadFileName; 

    public String fileUpload() { 
     try { 
      String fullFileName = "c:/sample/mystruts/myfile.txt"; 
      File theFile = new File(fullFileName); 
      FileUtils.copyFile(upload, theFile); 
     } catch (Exception e) { 
      System.out.println(e.toString()); 
      return ERROR; 
     } 

     return SUCCESS; 
    } 

    // Plus public getters/setters for upload properties. 
} 

JSP

<%@taglib uri="/struts-tags" prefix="s" %> 
<html> 
    <head> 
     <s:head theme="ajax" /> 
    </head> 

    <body> 
     <s:form action="doUpload.action" enctype="multipart/form-data"/> 
     <s:datetimepicker name="date" displayFormat="yyyy-MM-dd" /> 
     <s:file name="upload" /> 
     <s:submit value="submit"/> 
    </body> 
</html> 

스트럿츠 설정

<struts> 
    <package name="register3" extends="struts-default"> 
    <action name="doUpload" class="com.scrolls.action.UploadAction" method="fileUpload"> 
     <result name="success">/suc.jsp</result> 
     <result name="error">/fail.jsp</result> 
    </action> 
    </package> 
</struts> 

답변

3

당신은 근래 아래 내 코드 참조 개 자동 폐쇄 양식 ...

는 다음과 같이하십시오 :

<s:form action="doUpload.action" 
     method="POST" 
     enctype="multipart/form-data" > 
    <s:datetimepicker label="Select Date" 
        name="date" 
        displayFormat="yyyy-MM-dd" 
        required="true" /> 
    <s:file label="File:" name="upload" /> 
    <s:submit value="submit" /> 
</s:form> 

감사 아누에 수정, 일에 대한 ...

+1

영업 이익은'언급 한 방법 = "파일 업로드"'액션 매핑 그래서 그것은 형태로 필요하지 않습니다. 또한 양식 태그에 자바 메서드 이름을 언급 할 수 있는지 여부도 확실하지 않습니다. 나는 당신의 대답의 다른 부분에 대해서 당신과 동의합니다. – anu