2009-10-01 2 views
5

스프링 webflow 1.0 및 스트럿츠 1.3을 사용하여 파일을 업로드하는 데 문제가 있습니다. 내가 양식을 제출하면Struts - 파일 업로드

에서, file 필드는 항상 null입니다
public class AttachDocumentsForm extends SpringBindingActionForm { 
    // note, SpringBindingActionForm extends struts' ActionForm 
    private FormFile file; 
    //snip 
} 

자, 내 문제가 있음 :

<html:form action="/flowAction" method="post" enctype="multipart/form-data"> 
    <!-- snip --> 
    <html:file property="file" name="attachDocumentsForm" size="50"/> 
    <!-- snip --> 
</html:form> 

폼이 같은 것입니다 :

JSP는이 같은 것입니다 . 양식의 다른 필드는 올바르게 채워지며 RequestContext을 파헤 치면 해당 파일이 일부 파묻혀 있습니다. 여기

내가 첨부 파일에서 얻을 수있는 끔찍 추한 방법 : 내 양식에 MultipartRequestHandlernull입니다 것으로 나타났습니다

// 'context' is the RequestContext 
ServletExternalContext servletExternalContext = (ServletExternalContext) context.getExternalContext(); 
ActionForm form = (ActionForm) servletExternalContext.getRequest().getAttribute("actionForm"); 
FormFile file = (FormFile) form.getMultipartRequestHandler().getFileElements().get("file"); 

, 나는 이것이의 일부가 될 수 있다는 생각 문제가 있지만 CommonsMultipartRequestHandler 인스턴스로 채우려고했지만 아무 소용이 없습니다.

file 필드를 올바르게 채우려면 어떻게해야합니까?

+0

은 사용, ActionForm의 접근에서 파일을 얻을 수 없을 겁니다 (내고 formfile) form.getFile()을? –

답변

0

접근 자 메서드와 함께(attachDocumentsForm이 참조하는) ActionFormFormFile 유형의 파일이라는 필드를 추가합니다.

업로드 된 파일은 form.getFile()으로 전화하여 액세스 할 수 있습니다.

도움이 되었기를 바랍니다.

+0

고마워,하지만 그게 문제 야. ActionForm에 이미 해당 필드 중 하나가 있지만 항상 null입니다. –

+0

2006 년 이후 누구나이 문제가 발생했는지 모르겠지만 기존 프로젝트에서 똑같은 문제가 있습니다 ... 해결 방법이 있다면 해결할 수 있습니다 :-) – Philippe

+0

문제가 있습니다. 이리. –

1

는 당신이 봄 디스패처 서블릿을 구성해야한다고 생각 : http://static.springsource.org/spring/docs/2.0.x/reference/mvc.html#mvc-multipart-resolver

+0

업데이트 주셔서 감사합니다. 내가 링크 된 문서를 참조하고 해당 프로세스의 일부로 멀티 파트 해결 프로그램을 정의했음을 알고 있습니다. 나는 그것이 올바르게 배선되었다고 확신하지는 않는다. (내가 이것을 보았을 때 몇 개월이 지났다.) 나는 기회가 생길 때마다 다시 한번 통과 할 것이다. –

관련 문제