이 예제는 MultipartFile을 사용하여 SpringMVC의 특정 코드를 공유하여 참조 용 파일 업로드를 구현합니다. 특정 내용은 다음과 같습니다
1. 구성 파일
SpringMVC는 MultipartFile을 사용하여 파일을 업로드하므로 먼저 Multipartresolver를 구성해야합니다. 파일을 양식으로 처리해야합니다.
<!-스프링을 사용하여 파일 업로드에 대한 멀티 패트 레졸버 Commosmultipartresolver 구성-> <beans : bean id = "multipartresolver"p : defaultEncoding = "utf-8"p : maxuploadsize = "5400000"p : uploadtempdir = "FileUpload/temp"> : bean>.
속성에 대해 자세히 설명합니다.
DefaultEncoding = "UTF-8"은 요청 된 인코딩 형식 인 Default ISO-8859-1입니다
maxuploadsize = "5400000"은 업로드 된 파일의 크기입니다.
uploadtempdir = "FileUpload/temp"는 파일을 업로드하는 임시 경로입니다
2. 간단한 업로드 양식을 만듭니다
<body> <h2> 파일 업로드 인스턴스 </h2> <form action = "fileUpload.html"method = "post"encType = "multipart/form-data"> 파일 선택 : <input type = "file"name = "file"> <입력 유형 = "제출"값 = "제출"> </body>
양식이 파일을 처리해야한다는 것을 나타내려면 Form Tag에 ENCTYPE = "Multipart/Form-Data"를 추가해야합니다. 이것은 가장 기본적인 것입니다. 많은 사람들이 업로드 오류 후 프로그램을 찾는 오류를 잊어 버리지만이 점을 잊어 버리십시오.
3. 업로드 제어 클래스를 쓰십시오
1. 제어 클래스 생성 : FileUploadController 및 결과 목록을 반환하는 페이지.
2. 양식을 제출하려면 조치를 작성하십시오
// Spring의 Autowive Annotation을 통해 Spring의 기본 구성 요청을 가져옵니다. / *** * @RequestParam 주석으로 파일을 업로드하여 양식의 파일이 multipartFile * * @param 파일 */ @RequestMapping ( "fileUpload") public String fileUpload ( "file") multipartfile 파일) {// file string이 if (!))인지 결정합니다. FilePath = requestSession (). getServletContext (). getRealPath ( "/") + "upload/" + file.getoriginalFilename (); // TransferTo (새 파일 (FilePath)); } catch (예외 e) {e.printstacktrace (); }} // 리디렉션 return "retirect : /list.html"; }/*** * 업로드 된 파일의 모든 파일을 읽고 return * * @return */@requestmapping ( "list") public modelandview list () {String filepath = requestsession (). getServletContext (). getRealPath ( "/") + "upload/"; ModelAndView mav = new ModelAndView ( "List"); 파일 uploaddest = 새 파일 (FilePath); 문자열 [] filenames = uploadDest.List (); for (int i = 0; i <filenames.length; i ++) {// 파일 이름 system.out.println (filenames [i]); } return mav; } 3. SpringMVC 주석 요청 파람을 사용하여 양식에 파일 매개 변수를 지정합니다.
4. 파일을 저장하기 위해 웹 프로젝트 경로를 지정하십시오
5. 지정된 경로로의 멀티 파일의 전송 (파일 dest) 방법.
이 시점에서 기본 파일 업로드가 끝났습니다.
MultipartFile 클래스의 일반적으로 사용되는 일부 방법 :
문자열 getContentType () // 파일 mime 유형을 가져옵니다
inputStream getInputStream () // 그런 다음 파일 스트리밍으로 이동합니다
String getName () // 양식에서 파일 구성 요소의 이름을 얻습니다.
String getoriginalFilename () // 업로드 된 파일의 원래 이름 가져 오기
long getsize () // 파일의 바이트 크기, 단위 바이트
부울 isempty () // 비어 있습니까?
void transferto (file dest) // 대상 파일에 저장합니다.
4. 여러 파일 업로드
여러 파일을 업로드하는 것은 실제로 매우 간단합니다. CheckBox와 같은 다른 동일한 매개 변수를 업로드하는 것과 같이 양식에서 동일한 이름을 사용한 다음 MultipartFile 매개 변수 클래스를 동작의 배열로 정의하십시오.
다음 구현 :
1. 여러 파일을 업로드하는 양식을 만듭니다.
<body> <h2> </h2> <form action action = "filesupload.html"메소드 = "post"encmype = "multipart/form-data ="post "form-data"> <p> 파일 선택 : <input type = "file"name = "files"> <p> 파일 선택 : <input type "file"name = "files"> <input type = "pute = input> <pute = input. 타입 = "제출"값 = "제출"> </form> </body>
2. 양식을 처리하고 공유를 용이하게하기 위해 파일을 저장하기위한 별도의 메소드를 작성하는 조치를 작성하십시오.
/**** 파일 저장* @param 파일* @return*/private boolean savefile (multipartFile 파일) {// 파일이 비어있는 경우 (! file.isempty ()) {try {// path string filepath = request.getSession (). getervletContext (). getRealPath ( "/") + " +" + " +" + " // TransferTo (새 파일 (FilePath)); 진실을 반환하십시오. } catch (예외 e) {e.printstacktrace (); }} 거짓을 반환합니다. } 3. ack ack : @requestmapping ( "filesupload") public String filesupload (@requestparam ( "files") multipartfile [] files) {// 파일 배열 판단은 비어있을 수없고 길이는 0보다 큽니다. multipartfile 파일 = 파일 [i]; // 파일을 저장 SaveFile (파일); }} // 리디렉션 return "retirect : /list.html"; }위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.