스프링 MVC 파일 업로드

개요
파일 업로드 자바 웹 프로젝트는 일반적인 기능이며, 파일을 업로드 성공하지 못했습니다, 다음 단계가 필요 :
1. POST로 설정해야합니다 메소드 속성의 형태.
2. 폼에 enctype 속성은 / 폼 데이터 (폼 데이터 처리 이진 스트림을 사용하는 브라우저 전용 방식)으로 multipart로 설정되어야한다.
3.pom 파일은 평민 - 파일 업로드 의존성을 추가합니다.
4. MultipartResolver 스프링 MVC 프로필 배치.
예제 파일 업로드는
여전히 (: 이전에 연결된 단락 SpringMVCProject 프로젝트 위의 예제 프로그램 완료 https://www.jianshu.com/p/fde4557c527c을 ).
파일 업로드 페이지의 배경 이미지
폴더 "이미지"를 만들고 "backImage.jpg"라는 프로젝트의 웹 애플리케이션 디렉토리에 배경 이미지를 넣어 :

backImage

POM 설정 파일은
평민 - 파일 업로드 프로젝트의 POM 파일에 의존 추가 :

  1 <의존성>
   2      <의 groupId> 몬즈 파일 업로드 </의 groupId>
   3      <artifactId를> 몬즈 파일 업로드 </ artifactId를>
   4      <버전> 1.4 </ 버전>
   5 </ 의존성>

JSP 파일 작성
다음과 같은 프로그램을 작성, 프로젝트의 웹 애플리케이션 디렉토리에 파일 uploadfile.jsp 생성을 :
  1 <% 페이지 언어 @ = " 자바 "의 contentType = " text / html과; 문자셋 = UTF-8 "pageEncoding = " UTF-8 "%>
   2 <HTML>
   3 <head>
   4      <메타 HTTP-당량 = " 콘텐츠 - 입력 "내용 =" text / html과 "문자 집합 =" UTF-8 ">
   5      <제목>을 UploadFile </ 제목>
   6      <스타일 유형 =" 텍스트 / CSS ">
   7          몸 {
   8              배경 - 이미지 : 홈페이지 (이미지 / backImage .JPG);
  9              배경 사이즈 : 커버;
     </ 스타일>
 12 </ head>
 13 <body>
 14 <센터>
 15 <H3>文件上传页面</ H3>
 16 로 <br>
 17 <form 조치 = " 업로드 "METHOD = "  "에 enctype = " 다중 / 폼 데이터 ">
 18      <표>
 19          <TR>
 20              <TD> <라벨>文件信息</ 라벨> </ TD>
 21              <TD> <input 타입 =" 텍스트 "이름 =" 정보 "> </ TD>
 22          </ TR>
(23)는          <TR>
 24              </ 라벨> </ TD : <TD> <레이블> 파일 선택
 >25              <TD> <input 타입 = " 파일 "NAME = " 파일 "> </ TD>
 26          </ TR>
 27          <TR>
 28              <TD> <input 타입 = " 제출 이드 =" " 제출 "= 값 " 上传 "> </ TD>
 29          </ TR>
 30      </ 테이블>
 31 </ FORM>
 32 </ 센터>
 33 </ body>
 34 </ HTML>

컨트롤러 클래스를 만듭니다
다음과 같은 프로그램을 작성, com.snow.dcl.controller 패키지 UploadFileController 클래스 파일을 만들 수 :
  1 @Controller
   2  공용  클래스 UploadFileController {
   3      @RequestMapping (값 = " / 업로드 "METHOD = RequestMethod.POST)
   4      @ResponseBody
   5      공개 문자열 업로드 (HttpServletRequest의 요청 @RequestParam ( " 정보 ") 문자열 정보 @RequestParam ( " 파일 ")의 MultipartFile 파일) 던졌습니다 IOException가 {
   6          경우 (file.isEmpty ()) {!
   7              문자열 경로 = request.getServletContext () getRealPath (." 파일 ");
  8             문자열 파일명 = file.getOriginalFilename ();
  9              파일을 UploadFile =  파일 (경로 fileName에);
10              경우 (uploadFile.getParentFile () 존재 (!).)를 {
 11                  uploadFile.getParentFile () mkdirs ().;
12              }
 13              file.transferTo (  파일 (경로 + fileName에 Win32 시스템 +));
14              복귀 " 성공! ";
15          } 다른 {
 16              반환 " 아니 파일! ";
17          }
 18      }
19 }

@ResponseBody 노트에 컨트롤러 프로그램을 사용하여, 당신은! "업로드 파일"는 돌아갈 수와 문자열 데이터는 "업로드 파일을 추가되지 않습니다!"가 전면에, 봄 MVC 설정 파일 springmvc-servlet.xml 파일의 다른 구성 보기 JSP 파일을 반환합니다.
springmvc-servlet.xml에 구성 파일
은 다음과 같이 증가 프로파일 구성 파일 springmvc-servlet.xml에 MultipartResolver에서 :
  1 <XML 버전 = " 1.0 "인코딩 = " UTF-8 "?>
   2 <콩의 xmlns = " http://www.springframework.org/schema/beans "
   3        의 xmlns :이 xsi = " HTTP : // WWW. w3.org/2001/XMLSchema-instance "
   4        : 컨텍스트의 xmlns =" http://www.springframework.org/schema/context "
   5 개        의 xmlns : MVC =" http://www.springframework.org/schema/mvc "
   6        는 xsi :의 schemaLocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context에 http : // www가 .springframework.org / 스키마 / 환경 / 봄 - context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd ">
   . 7  
  . 8      <! - 클래스 관련 주석 스프링을 스캔하는 경우, 자바 클래스 스프링 서브 - 패킷들 또는 패킷들의 자동 스캔 기본 패키지 세트 스프링은 빈으로 등록 할 수 ->
   9.      <컨텍스트 : 스캔 부품 베이스 - 패키지 = " com.snow.dcl.controller는 "/>
 10  
(11).      <MVC는 : 주석 - 기반 />
 (12)는      <MVC : 기본 -servlet 처리기 />
 13 인  
14      <!
- 뷰 리졸버 ->15      <빈 ID = " 의 viewResolver " 클래스 = " org.springframework.web.servlet.view.InternalResourceViewResolver ">
 16          <속성 명 = " 접두어 ">
 17              <값> / WEB-INF / 콘텐츠 / </ 값>
 18          < / 속성>
 19          <속성 명 = " 접미사 ">
 20              <값> .jsp를 </ 값>
 21          </ 속성>
 22      </ 빈>
 23  
24      <빈 ID = " multipartResolver "클래스 = "org.springframework.web.multipart.commons.CommonsMultipartResolver ">
 25          <! -이> - 파일 크기보다 20M 업로드
 (26)이다          <속성 이름 =" maxUploadSize ">
 27              <값> 20971520 </ 값>
 28          </ 속성>
 (29)          <! - 요청 부호화 형식, 동일한 속성 값 pageEncoding JSP 파일이어야 ->
 30          <속성 명 = " defaultEncoding ">
 31 인              <값> 8 UTF -. </ 값>
 32          </ 속성>
 33 인      </ 빈>
 34이고  
35 > </ 콩
 36 


주 :
1. 구성 MultipartResolver 또한 MVC 네임 스페이스를 추가했다.
2. 추가 <MVC : 기본 - 서블릿 핸들러 /> 이미지 및 기타 배경 정적 자원을 처리하도록 구성.
3. 추가 <MVC : 기본 - 서블릿 핸들러 /> 구성은 <MVC : 주석 중심의 /> 추가해야합니다 그렇지 않으면 상황이 해결되지 않습니다 @Controller 노트, 그들은 일치하지 않을 때 요청 유형의 요청을 처리하는 선도, 우리 모두가 이동 <MVC : 기본적 서블릿 처리기 /> 즉 기본 서블릿 프로세스 정적 자원 (예를 들어, 이미지 리소스) 대응하는 컨트롤러 기본 서블릿이 처리되지 않으며 있기 때문에.
테스트
: TomcatServer가 시작이 완료 후, 브라우저를 열고 다음을 입력 시작 HTTP : // localhost를 : 8080 / uploadfile.jsp , 성공적인 방문을. 모든 파일을 추가하지 마십시오, 직접 제출 : TXT 파일로 테스트를 추가 제출 : 프로젝트 디렉토리를 대상 디렉토리 아래에보기 프로젝트 디렉토리 파일 디렉토리에 파일을 업로드 파일 디렉토리를 생성합니다 : 이 시점에서, 파일 업로드 기능 녹음이 완료됩니다.
스프링 MVC는 01 업로드

스프링 MVC는 03 업로드

스프링 MVC는 02 업로드

스프링 MVC는 04 업로드

스프링 MVC는 05 업로드

추천

출처www.cnblogs.com/Dcl-Snow/p/11606559.html