2014-10-08 2 views
1

안녕하세요, 저는 하나의 엑셀과 두 개의 XML 파일을 서버에 업로드하고 싶지만 동작 및 결과 입력 오류에 대해 정의 된 결과가 표시되지 않습니다. struts2 프레임 워크를 사용하고 있습니다.해결 방법 조치 및 결과 입력 오류에 대해 정의 된 결과가 없습니다?

내 JSP로 페이지 -

<form action ="myInput" enctype="multipart/form-data" method="post" > 
<input type="file" name="fileUpload[]" /> 
<input type="file" name="fileUpload[]" /> 
<input type="file" name="fileUpload[]" /> 
<input type="submit" value="Upload Records" /> 
</form> 

내 struts.xml-

<package name="links" extends="struts-default, json-default" namespace="/"> 
<action name="myInput" class="com.action.MyAction" > 
     <interceptor-ref name="linksAccessRequired"/> 

     <interceptor-ref name="fileUpload"> 
      <param name="allowedTypes">*/*</param> 
      <param name="maximumSize">10485760</param> <!-- 10MB --> 
     </interceptor-ref> 
     <interceptor-ref name="defaultStack" /> 

     <result name="success" type="json"/> 
     <result name="login" type="redirect">/</result> 
    </action> 
</package> 

내 행동 파일 -

 import com.opensymphony.xwork2.Action; 
     import com.opensymphony.xwork2.ActionSupport; 

     import java.io.File; 
     import java.io.IOException; 

     import javax.servlet.http.HttpServletRequest; 
     import javax.servlet.http.HttpSession; 

     import org.apache.commons.io.FileUtils; 
     import org.apache.struts2.interceptor.ServletRequestAware; 

    public class MyAction extends ActionSupport implements ServletRequestAware { 
/** 
* 
*/ 
private static final long serialVersionUID = 1L; 
private boolean result = false; 
private String status = null; 
private String msg = null; 

HttpServletRequest request = null; 

private File[] fileUpload; 
private String[] fileUploadFileName; 
private String[] fileUploadContentType; 

public File[] getFileUpload() { 
    return fileUpload; 
} 

public void setFileUpload(File[] fileUploads) { 
    this.fileUpload = fileUploads; 
} 

public String[] getFileUploadFileName() { 
    return fileUploadFileName; 
} 

public void setFileUploadFileName(String[] fileUploadFileNames) { 
    this.fileUploadFileName = fileUploadFileNames; 
} 

public String[] getFileUploadContentType() { 
    return fileUploadContentType; 
} 

public void setFileUploadContentType(String[] fileUploadContentTypes) { 
    this.fileUploadContentType = fileUploadContentTypes; 
} 

public String getStatus() { 
    return status; 
} 

public void setStatus(String status) { 
    this.status = status; 
} 

public String getMsg() { 
    return msg; 
} 

public void setMsg(String msg) { 
    this.msg = msg; 
} 

public String execute() { 
    System.out.println("Something"); 
    String saveDirectory = "/mypath/excels/Output/"+request.getSession().getAttribute("my")+"/myOut/"; 
    if(this.doUpload(fileUpload, saveDirectory)) 
    { 
     this.setStatus("Success"); 
     this.setMsg("Files have been upload successfully !"); 
    } 
    else 
    { 
     this.setStatus("Failled"); 
     this.setMsg("Files have not been upload successfully !"); 
    } 
    return Action.SUCCESS; 
} 
public boolean doUpload(File[] fileUpload, String saveDirectory) { 

    // copy the uploaded files into pre-configured location 
    for (int i = 0; i < fileUpload.length; i++) { 
     File uploadedFile = fileUpload[i]; 
     String fileName = fileUploadFileName[i]; 
     File destFile = new File(saveDirectory + File.separator + fileName); 
     try { 
      FileUtils.copyFile(uploadedFile, destFile); 
     } catch (IOException ex) { 
      System.out.println("Could not copy file " + fileName); 
      ex.printStackTrace(); 
     } 
    } 
    return true; 
} 

@Override 
public void setServletRequest(HttpServletRequest request) { 
    this.request = request; 
} 

}

조치 및 결과 입력 오류에 대해 정의 된 결과가 없습니다. 이 문제를 해결하도록 제발 제안 해주세요. 감사

+0

'입력'결과를 추가하고 해당 페이지에 오류 메시지를 표시하면 그 이유를 알 수 있습니다. –

+0

@ Aleksandr M, 입력 결과를 추가 한 후에도 오류가 발생합니다. – user3860841

+0

'input' 결과를 추가하면 오류가 달라야합니다. 물론 진짜 이유는 다른 것입니다. 그러나 당신이 나의 첫 번째 발언을 따른 후에 그것을 볼 것입니다. –

답변

0
  1. 먼저 how INPUT result works을 읽고, correcly 액션 구성에 하나를 추가;

  2. how to upload multiple files in Struts2; 이 시점에서

  3. , 당신이 당신의 자신에 의해 오류를 발견 할 수 있어야한다, 즉 :

    <form action="myInput" enctype="multipart/form-data" method="post" > 
        <input type="file" name="fileUpload[]" /> 
        <input type="file" name="fileUpload[]" /> 
        <input type="file" name="fileUpload[]" /> 
        <input type="submit" value="Upload Records" /> 
    </form> 
    

    그것이 있어야하는 동안 :

    <form action="myInput" enctype="multipart/form-data" method="post" > 
        <input type="file" name="fileUpload[0]" /> 
        <input type="file" name="fileUpload[1]" /> 
        <input type="file" name="fileUpload[2]" /> 
        <input type="submit" value="Upload Records" /> 
    </form> 
    

    또는 더 나은 :

    <form action="myInput" enctype="multipart/form-data" method="post" > 
        <input type="file" name="fileUpload" multiple /> 
        <input type="submit" value="Upload Records" /> 
    </form> 
    

    Struts 태그를 사용할 경우 :

    <s:form action="myInput" enctype="multipart/form-data" method="post" > 
        <s:file name="fileUpload" multiple /> 
        <s:submit value="Upload Records" /> 
    </s:form> 
    

사이드 참고 : this may be worth reading가 dropzone.js와 Struts2에서 여러 업로드를 수행하는 방법을 아는에 관심이 있다면.