여러 파일 업로드 질문입니다.
- 작성자 :
- 이*욱
- 작성일 :
- 2010-11-17 11:35:37
- 조회수 :
- 3,334
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
전자정부의 파일 업로드 기능 사용중 여러파일 업로드 하면 문제가 생기는거 같습니다.
하나의 파일은 잘되나 파일 2개이상을 첨부하면 문제가 생깁니다.
오류 내용은 아래와 같으며, 해결 방법좀 부탁드립니다.
----------------------------------------------------------------------
2010-11-17 11:29:27 오전 [ DEBUG ] - DispatcherServlet.processHandlerException(1126) | Handler execution resulted in exception - forwarding to resolved error view: ModelAndView: reference to view with name 'error/aposError'; model is {exception=org.springframework.web.multipart.MultipartException: Multiple files for field name [file_0] found - not supported by MultipartResolver}
org.springframework.web.multipart.MultipartException: Multiple files for field name [file_0] found - not supported by MultipartResolver
at apo.util.EgovMultipartResolver.parseFileItems(EgovMultipartResolver.java:111)
at org.springframework.web.multipart.commons.CommonsMultipartResolver.parseRequest(CommonsMultipartResolver.java:166)
at org.springframework.web.multipart.commons.CommonsMultipartResolver.resolveMultipart(CommonsMultipartResolver.java:149)
at org.springframework.web.servlet.DispatcherServlet.checkMultipart(DispatcherServlet.java:1015)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:851)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511)
----------------------------------------------------------------------
<tr>
<th scope="col" abbr="첨부파일"><img src="/image/sub/tit_fileW.gif" alt="첨부파일" /></th>
<td>
<table width="100%" cellspacing="0" cellpadding="0" border="0" align="center">
<tr>
<td><input class="ipt_file" type="file" name="file_1" id="egovComFileUploader"/></td>
</tr>
<tr>
<td><div id="egovComFileList"></div></td>
</tr>
<script type="text/javascript">
var multi_selector = new MultiSelector( document.getElementById( 'egovComFileList' ), 3 );
multi_selector.addElement( document.getElementById( 'egovComFileUploader' ) );
</script>
</table>
최대 <strong>4</strong>MB</td>
</tr>
하나의 파일은 잘되나 파일 2개이상을 첨부하면 문제가 생깁니다.
오류 내용은 아래와 같으며, 해결 방법좀 부탁드립니다.
----------------------------------------------------------------------
2010-11-17 11:29:27 오전 [ DEBUG ] - DispatcherServlet.processHandlerException(1126) | Handler execution resulted in exception - forwarding to resolved error view: ModelAndView: reference to view with name 'error/aposError'; model is {exception=org.springframework.web.multipart.MultipartException: Multiple files for field name [file_0] found - not supported by MultipartResolver}
org.springframework.web.multipart.MultipartException: Multiple files for field name [file_0] found - not supported by MultipartResolver
at apo.util.EgovMultipartResolver.parseFileItems(EgovMultipartResolver.java:111)
at org.springframework.web.multipart.commons.CommonsMultipartResolver.parseRequest(CommonsMultipartResolver.java:166)
at org.springframework.web.multipart.commons.CommonsMultipartResolver.resolveMultipart(CommonsMultipartResolver.java:149)
at org.springframework.web.servlet.DispatcherServlet.checkMultipart(DispatcherServlet.java:1015)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:851)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511)
----------------------------------------------------------------------
<tr>
<th scope="col" abbr="첨부파일"><img src="/image/sub/tit_fileW.gif" alt="첨부파일" /></th>
<td>
<table width="100%" cellspacing="0" cellpadding="0" border="0" align="center">
<tr>
<td><input class="ipt_file" type="file" name="file_1" id="egovComFileUploader"/></td>
</tr>
<tr>
<td><div id="egovComFileList"></div></td>
</tr>
<script type="text/javascript">
var multi_selector = new MultiSelector( document.getElementById( 'egovComFileList' ), 3 );
multi_selector.addElement( document.getElementById( 'egovComFileUploader' ) );
</script>
</table>
최대 <strong>4</strong>MB</td>
</tr>
A
안녕하세요.. 이선욱님..
실제 파일이 지정되지 않은 <input type='file' ../>에 대한 처리 시 실제 파일이 없는 경우 발생된 것 같습니다.
apo.util.EgovMultipartResolver.parseFileItems() 부분에서 기존 부분인
CommonsMultipartFile file = new CommonsMultipartFile(fileItem);
if (multipartFiles.put(fileItem.getName(), file) != null) { // CHANGED!!
부분을 다음과 같이 변경하시면 될 것 같습니다.
CommonsMultipartFile file = new CommonsMultipartFile(fileItem);
if (file == null) {
continue;
}
if (multipartFiles.put(fileItem.getName(), file) != null) { // CHANGED!!
그럼.. 즐거운 하루되십시오.
감사합니다.
실제 파일이 지정되지 않은 <input type='file' ../>에 대한 처리 시 실제 파일이 없는 경우 발생된 것 같습니다.
apo.util.EgovMultipartResolver.parseFileItems() 부분에서 기존 부분인
CommonsMultipartFile file = new CommonsMultipartFile(fileItem);
if (multipartFiles.put(fileItem.getName(), file) != null) { // CHANGED!!
부분을 다음과 같이 변경하시면 될 것 같습니다.
CommonsMultipartFile file = new CommonsMultipartFile(fileItem);
if (file == null) {
continue;
}
if (multipartFiles.put(fileItem.getName(), file) != null) { // CHANGED!!
그럼.. 즐거운 하루되십시오.
감사합니다.