반응형
pom.xml
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.4</version>
</dependency>
servlet-context.xml
<beans:bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<beans:property name="maxUploadSize" value="5242880000" />
<beans:property name="maxInMemorySize"
value="100000000" />
</beans:bean>
multipart.java
@RequestMapping(value = "/upload.do", method = RequestMethod.POST)
public void upload(HttpServletRequest request, HttpServletResponse response)
throws IllegalStateException, IOException {
MultipartFile multipartFile = null;
String originalFileName = null; // 원본 파일 명
String originalFileExtension = null; // 파일 확장자
String storedFileName = null; // 저장될 파일 명
// 파일을 받는 페이지 필요
MultipartHttpServletRequest multipartHttpServletRequest = (MultipartHttpServletRequest) request;
// 반복자로 파일 이름을 담는다.
Iterator<String> iterator = multipartHttpServletRequest.getFileNames();
String uploadPath = "D:\\"; // 예) "D:\\
// resource/egovframework/spring/context-properties.xml 에 파일업로드 경로 설정
File file = new File(uploadPath);
while (iterator.hasNext()) {
multipartFile = multipartHttpServletRequest.getFile(iterator.next());
if (multipartFile.isEmpty() == false) {
originalFileName = multipartFile.getOriginalFilename();
originalFileName = new String(originalFileName.getBytes("ISO-8859-1"), "UTF-8"); // 한글 깨짐 때문에 씀
originalFileExtension = originalFileName.substring(originalFileName.lastIndexOf(".")); // .jpg
storedFileName = UUID.randomUUID().toString() + originalFileExtension;
file = new File(uploadPath + storedFileName);
multipartFile.transferTo(file);
System.out.println("originalFileName : " + originalFileName);
System.out.println("storedFileName : " + storedFileName);
System.out.println("type : " + multipartFile.getName());
System.out.println("filename : " + multipartFile.getOriginalFilename());
System.out.println("size : " + multipartFile.getSize());
}
}
}
multipart.js
$(function() {
$("#sending").on("click", function() {
sendImage();
})
});
function sendImage(){
var fileId = document.getElementById("file_input");
var file = fileId.files[0];
var formdata = new FormData();
// formdata에 보낼 이미지 정보 담기 (키:값)
formdata.append("file", file);
console.log(formdata);
$.ajax({
type: "POST",
url: "upload.do",
data: formdata,
processData: false, // 데이터를 컨텐트 타입에 맞게 변환 여부 (false 필수)
contentType: false, // 요청 컨텐트 타입 (false 필수)
success: function(data) {
alert("파일이 전송 되었습니다.");
},
error: function(data) {
alert("파일 전송에 실패했습니다.");
}
});
}
multipart.jsp
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page session="false" %>
<html>
<head>
<title>Home</title>
</head>
<body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<h1>
Hello world!
</h1>
<input type='file' id='file_input'>
<button id='sending'> 보내기 </button>
<P> The time on the server is ${serverTime}. </P>
</body>
</html>
반응형
'[Java] > [Java Code]' 카테고리의 다른 글
[Java Code] pdf 파일 생성, pdf 파일 다운로드, pdf 파일 읽기 (웹에서 pdf 띄우기) (0) | 2022.06.27 |
---|---|
[Java Code] 텍스트 파일 읽고 저장하기 (0) | 2022.06.27 |
[Java Code] QR코드 생성 (0) | 2022.05.22 |
[Java Code] 이클립스 내 저장된 이미지 경로 가져오기 (0) | 2022.05.22 |
[Java Code] BufferedImage (ImageIO) 그림 그리기 (0) | 2022.05.22 |