SpringMVC 단일 파일,다 중 파일 업로드 상세 설명
SpringMVC 에 파일 업로드 클래스 를 적 었 습 니 다.
파일 로 업로드 하려 면 먼저 파일 업로드 와 관련 된 Jar 패키지 가 필요 합 니 다.comons-fileupload.jar 와 comons-io.jar.
pom.xml 또는 lib 폴 더 에 추가 합 니 다.
pom.xml:
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
SpringMVC 의 설정 파일 에 bean 을 추가 합 니 다(id 와 class 는 고정 적 인 쓰기 입 니 다).
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8"></property>
<property name="maxUploadSize" value="104857600"></property>
</bean>
전단 에 단일 파일 업로드 폼 을 쓰 고,다 중 파일 업로드 폼(다 중 파일 업로드 폼 중,다 중 파일 입력 input 의 name 동일):
<form action="handler/testUpload" method="post" enctype="multipart/form-data">
: <input type="text" name="desc" id="desc">
<br>
: <input type="file" name="file"><br>
<input type="submit" value=" ">
</form>
<br>
<br>
<form action="handler/testMutiUpload" method="post" enctype="multipart/form-data">
: <input type="text" name="desc">
<br>
: <input type="file" name="file"><br>
1: <input type="file" name="file"><br>
2: <input type="file" name="file"><br>
<input type="submit" value=" ">
</form>
파일 업로드 중 인 자 는 File 류 가 아 닌 MultipartFile 을 사용 해 야 합 니 다.FileUtils.copyFile()을 사용 하여 파일 을 복사 할 수 없 기 때문에 스 트림 으로 디스크 에 출력 합 니 다.단일 파일 다 중 파일 은 단일 파일 에서 전 달 된 file 매개 변 수 를 배열 형식 으로 바 꾸 고 방법 내 file 과 관련 된 작업 을 모두 배열 로 바 꾸 면 됩 니 다.
단일 파일 업로드
흐름 을 사용 하지 않 아 도 된다.아래 에 있 는 이 말 은 누군가가 사용 하 는 것 을 보 았 지만 테스트 가 없 었 다.
File dest = new File(filePath + fileName); file.transferTo(dest);
@RequestMapping("testUpload")
public String testUpload(@RequestParam("desc") String desc, @RequestParam("file") MultipartFile file) throws IOException {
System.out.println(" :" + desc);
//
InputStream inputStream = file.getInputStream();
// img.png/hh.docx
String fileName = file.getOriginalFilename();
//
OutputStream outputStream = new FileOutputStream("C:\\tmp\\" + fileName);
//
byte[] bs = new byte[1024];
int len = -1;
while ((len = inputStream.read(bs)) != -1) {
outputStream.write(bs,0,len);
}
inputStream.close();
outputStream.close();
return "success";
}
다 중 파일 업로드
@RequestMapping("testMutiUpload")
public String testMutiUpload(@RequestParam("desc") String desc, @RequestParam("file") MultipartFile[] files) throws IOException {
System.out.println(" :" + desc);
for (MultipartFile file :
files) {
InputStream inputStream = file.getInputStream();
String fileName = file.getOriginalFilename();
OutputStream outputStream = new FileOutputStream("C:\\tmp\\" + fileName);
byte[] bs = new byte[1024];
int len = -1;
while ((len = inputStream.read(bs)) != -1) {
outputStream.write(bs,0,len);
}
inputStream.close();
outputStream.close();
}
return "success";
}
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
thymeleaf로 HTML 페이지를 동적으로 만듭니다 (spring + gradle)지난번에는 에서 화면에 HTML을 표시했습니다. 이번에는 화면을 동적으로 움직여보고 싶기 때문에 입력한 문자를 화면에 표시시키고 싶습니다. 초보자의 비망록이므로 이상한 점 등 있으면 지적 받을 수 있으면 기쁩니다! ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.