자바 네 이 티 브 서버 에서 업로드 파일 을 받 을 때 MultipartFile 클래스 를 사용 하지 않 습 니 다.

작업 중 사용 하기 때문에 MultipartFile 은 기 존의 업로드 파일 구성 요소 와 충돌 합 니 다.
그래서 업로드 파일 을 받 는 다른 방법 을 사용 합 니 다.
일단 제 가... MultipartFile 류 의 프로필 설명 이 떨 어 집 니 다.

<!-- <bean id="multipartResolver"
 class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
 <property name="defaultEncoding" value="utf-8" />
 <property name="maxUploadSize" value="10485760" />
     10M,      ,MultipartFile       , request   !
 </bean> -->
그리고 기 존의 파일 수신 방법 을 코드 로 바 꾸 고,
주석 이 상세 하면 쓸데없는 말 이 많 지 않다.

/**
*   request         
* @warn               
*         ,  item.delete();
* @param request http  
* @param encoding     , null   utf-8
* @return        FileItem   
*/
public List<FileItem> getUploadInputSteam(HttpServletRequest request,String encoding){
 if (encoding==null || "".equals(encoding)) {
 encoding = "UTF-8";
 }
 List<FileItem> items = new ArrayList<FileItem>();
 //             
 DiskFileItemFactory factory = new DiskFileItemFactory();
 ServletFileUpload upload = new ServletFileUpload(factory);
 upload.setHeaderEncoding(encoding);
 if (!ServletFileUpload.isMultipartContent(request)) {
 return items;
 }
 try {
 //  ServletFileUpload         ,          List<FileItem>  
 //   FileItem    Form      
 List<FileItem> list = upload.parseRequest(request);
 for (FileItem item : list) {
 //  fileitem             
 if (item.isFormField()) {
// String name = item.getFieldName();
//  //                 
// String value = item.getString(encoding);
// System.out.println(name +"="+value);
 }else{
 String fileName = item.getName();
 if (fileName==null||fileName.trim().equals("")) {
 continue;
 }
 //  :                 ,                   ,
 // : c:\a\b\1.txt,           , :1.txt
 //                   ,        
// fileName = fileName.substring(fileName.lastIndexOf("\\")+1);
 items.add(item);
 }
 }
 } catch (Exception e) {
 e.printStackTrace();
 return items;
 }
 return items;
 }
 @RequestMapping("/testUpload")
 @ResponseBody
 public String testUpload(HttpServletRequest request) throws Exception{
 //      
 List<FileItem> items = getUploadInputSteam(request, "utf-8");
 //       
 FileItem item = items.get(0);
 
 //      
 String fileName = item.getName();
 fileName = fileName.substring(fileName.lastIndexOf("\\")+1);
 
 //     ,             ,       
 InputStream in = item.getInputStream();
 
 //   
 in.close();
 
 //       ,item     
 item.delete();
 return "success!";
}
주의:
1.파일 을 처리 하 는 클래스 는 모두 org.apache.comons 의 이 가방
2.전단 에서 폼 을 작성 해 야 하 는"action 의 url,enctype="multipart/form-data",post 요청 이 들 어 왔 습 니 다.
3.input 버튼 은 type="file"name="xxx"를 가리 키 고 또 있 습 니 다. 제출 버튼  (ajax 비동기 로 제출 해도 됩 니 다) 
예 를 들 면:

<form action="test/testUpload" method="post"
 enctype="multipart/form-data">
 
 <input type="file" name="myFile" value="    "> 
 <input type="submit" value="    " />
</form>
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기