2009-09-29 3 views
4

업데이트 : 문제는 플래시 구성 요소 자체가되었습니다. 요소에서 여러 값을 올바르게 컴파일하지 못했습니다. 개발자에게 알리고 해결 방법을 구현했습니다. Commons FileUpload는 허용 된 답변마다 여러 값을 지원합니다.Commons File Upload를 사용하여 선택 필드에서 여러 값을 검색하는 방법?

나는 하나

<select name="XX" multiple="multiple"> 

사용자가 여러 파일을 선택할 수있는 플래시 업로드 구성 요소, 양식 = "다중/폼 데이터"에 enctype 있습니다. 아파치 코 몬즈는 FileUpload을 사용하여 POST를 처리 할 때, 나는

item.isFormField() == true 

를 통해 선택 필드를 감지하고

// Process a regular form field 
if (item.isFormField()) { 
    String name = item.getFieldName(); 
    String value = item.getString(); 
} 

나는 데 문제를 통해 세부 사항을 추출하기 위해 지속적는 점이다 item.getString(); 필드에서 처음 선택된 값만 반환합니다. 얼마나 많은 항목을 선택하든 관계없이 첫 번째 항목 만 가져옵니다.

마찬가지로 매개 변수 추출을 위해 표준 서블릿 방법을 사용할 때, 즉.

final String[] values = request.getParameterValues("XX"); 

값이 비어 있습니다. 이는 양식이 멀티 파트로 인코딩 되었기 때문입니다.

다중 선택 필드에서 선택한 여러 값을 어떻게 검색합니까?

이 답변은 다른 작성자의 posed on the Sun forums입니다.

+0

사용중인 플래시 업로드 구성 요소는 무엇입니까? 기본적으로 동일한 요구 사항을 가지고 있지만 올바른 플래시 업로드 구성 요소를 가져올 수 없습니다. – jay

+0

http://www.element-it.com/multipowupload.aspx 정말 고맙습니다. 개발자가 처음 버그를보고 나에게 고정 버전을 제공 한 순간부터 매우 빠른 처리 시간을 보냈습니다. – rcampbell

답변

3

사실 여러 항목의 fieldName이 같을 수 있습니다. 동일한 fieldName에 대한 모든 항목 문자열 값을 String 컬렉션에 추가 한 다음 해당 컬렉션을 배열로 변환하면됩니다.

일부 정보가 찾았습니다 -

가 커먼즈 파일을 사용하여 선택 필드에서 여러 값을 검색 할 다른 사람이 같은 문제에 직면하는 경우 링크 위 http://www.nabble.com/RES:-File-Upload-td25910926.html

+0

위 링크가 작동하지 않습니다! : | – freesoul

3

가 작동되지 않고, 여기에 모든 값을 가져 오는 방법 업로드 -

List items = upload.parseRequest(request); 
    Iterator iter = items.iterator(); 

    while (iter.hasNext()) { 
     FileItem item = (FileItem) iter.next(); 

     if (item.isFormField()) { 
      String name = item.getFieldName(); 
      String value = item.getString(); 

     if (name.equals("multi-select")) 
      completeSet = value; 
    } 

다음 completeSet은 첫 번째 값만 갖습니다. multi select의 다른 모든 값은 동일한 이름의 항목에도 있습니다 (여기 다중 선택). (- 목록에서 모든 것을 수집하고 [] : 문자열로 변환으로 예) 예 -

List<String> completeSet=new ArrayList<String>(); 
if(name.equals("multi-select")) 
    completeSet.add(value); 
그래서 당신이해야 할 모든 필요한 데이터 형식으로 변환 한 후 한 모든 값 하나를 가져오고있다

이렇게하면 completeSet은 모든 값 집합을 갖게됩니다.

관련 문제