반응형
|| 문제사항
여러건의 첨부파일을 서버에 생성/등록하는 방법
|| multipart/form-data 처리
<form id="formData" method="post">
<input type="file" name="file01"/>
<input type="file" name="file02"/>
...
</form>
//input에 추가한 첨부파일 값을 form태그에 담아 전송함
let form = $('#formData')[0];
let formData = new FormData(form);
$.ajax({
type: 'POST',
enctype: 'multipart/form-data',
processData: false,
contentType: false,
dataType: 'json',
url: '/insert.do',
data: formData,
success: function(data) {
//반환받는 값이 있을경우 사용
}
});
processData
: ajax 통신을 통해 데이터를 전송할때, 기본적으로 key와 value값을 Query String으로 변환해서 보냄 (기본값 : true)
* 첨부파일 전송시에는 false로 설정함
contentType
: 전송할 데이터 타입 (기본 값 : "application / x-www-form-urlencoded; charset = UTF-8")
* 첨부파일 전송시에는 false로 설정함 (content-type 헤더가 multipart/form-data로 전송됨)
|| JAVA 처리
jsp에서 받아온 여러 첨부파일들을 서버에 생성
//MultipartHttpServletRequest 로 form 데이터 값을 받는다
Map<String, MultipartFile> files = mf.getFileMap();
if(!files.isEmpty()){
Iterator<Entry<String, MultipartFile>> itr = files.entrySet().iterator();
while (itr.hasNext()) {
Entry<String, MultipartFile> entry = itr.next();
file = entry.getValue();
//파일명
String fileNm = file.getOriginalFilename();
//확장자
String ext = fileNm.substring(fileNm.lastIndexOf(".") + 1)
//파일사이즈
long fileSize = file.getSize();
//원하는 경로에 첨부파일을 등록
File file = new File("/경로/"+fileNm);
}
}
* 첨부파일을 서버에 생성할때 파일명은 주로 암호화 하여 저장한다.
반응형
'개발공부 > JAVA' 카테고리의 다른 글
JAVA 배열(Array)에 대해 알아보기 (0) | 2022.04.04 |
---|---|
JAVA 연산자의 종류 (0) | 2022.03.28 |
JAVA API 볼수 있는 곳 (0) | 2021.11.09 |
문자열 저장 시 JAVA에서 <script> 태그 replace하기 (0) | 2021.09.06 |