2022. 2. 23. 23:54ㆍ비즈니스 탐색/개발
# 스프링 파일업로드(input type="file" 1개일때)
form.java jsp파일 생성
파일업로드를 위한 encytype / method 지정
<form action="/spring/file/upload.nhn" enctype="multipart/form-data" method="post">
id: <input type="text" name="id" /> <br />
file: <input type="file" name="save" /> <br />
<input type="submit" name="전송" /> <br />
</form>
# /file/upload.nhn을 위한 upload.java 생성
a 태그를 이용하여 다운로드 링크를 만들어준다.
?fileName=${fileName}은 filename 파라미터 값을 받아오는 것으로 이제 FileController과 Controller을 만들어 추가해보자.
<a href="/spring/file/download.nhn?fileName=${fileName}">
<b>다운로드~~~~~</b>
</a>
# FileController 생성
file.upload 패키지를 생성해서 FileController.java 클래스를 만들자.
임포트 할 것!
@Controller
public class FileController {
@RequestMapping("/file/form.nhn")
public String form() { return "/0921/form.jsp"; } - 위에 생성해 놓은 form.jsp
@RequestMapping("/file/upload.nhn")
public String upload(MultipartHttpServletRequest multi) {
MultipartFile file = multi.getFile("save");
String fileName = file.getOriginalFilename();
File copy = new File("//Users//mi//Desktop//save//" + fileName ); - 파일 주소는 본인 폴더 주소경로를 쓸 것!
★파일카피: 여기서 업로드 된 것이 아닌 파일이름이 똑같은 껍데기일뿐. 확장자는 이미지인데 비어있는 것을 알자!
try{ -
file.transferTo(copy); - transferTo
}catch(Exception e) {}
multi.setAttribute("fileName", fileName);
String name = multi.getParameter("name");
System.out.println(file);
System.out.println(name);;
return "/0921/upload.jsp"; - 위에 생성해 놓은 upload.jsp
}
# 위의 업로드 파일 한 개 일때 지정한 코드, 실행한 결과
http://localhost:8000/spring/file/form.nhn에서 파일을 추가하고 제출을 누르게 되면
업로드 시킨 파일이 저장되는 폴더인 save에 제대로 업로드 되는 것을 알 수 있다.
# 이제 업로드 추가 파일이 여러개인 경우를 실행해보자
FileController.java 클래스에서 List로 추가수정하는 것인데,
기존 FileController.java에서 @RequestMapping("/file/upload.nhn")
public String upload(MultipartHttpServletRequest multi) { 부분!!
아래 내용을 새롭게 추가 수정하자.
List<MultipartFile> fileList = multi.getFile
("save");
for(MultipartFile file : fileList) {
String fileName = file.getOriginalFilename();
File copy = new File("//Users//mi//Desktop//save//" + fileName );
try{
file.transferTo(copy);
}catch(Exception e) {}
}
위 처럼 수정 후 form.jsp에서 input type="file"을 몇 개 더 추가 시킨 후 실행시켜보면, 파일들이 제대로 올라가는 것을 확인할 수 있다.
'비즈니스 탐색 > 개발' 카테고리의 다른 글
[오류/에러] HTTP Status 405 - Request method 'POST' not supported (0) | 2022.02.24 |
---|---|
[struts/servletConfig] 인터셉터(initerceptor) – servletConfig (0) | 2022.02.23 |
[spring/framework] Action 총 수행 시간을 인터셉터로 구현 + 수 입력이 되지 않을경우. (0) | 2022.02.23 |
[struts/framework] 인터셉터 개요 및 사용자 입력값 처리 (0) | 2022.02.23 |
[spring/framework] Struts1 과 Struts2의 Action 비교 (0) | 2022.02.23 |