Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- dbContext
- 명시적외래키
- React
- .net
- mac
- ViewModel
- 코드프로그래머스
- LINQ
- vscode
- Request
- c#
- extjs
- 대전본식영상
- ORM
- 라도무스dvd
- JSON
- 스냅잘찍음
- minimalAPI
- c#코딩의기술실전편
- error
- Config
- extraParams
- 상속
- JavaScript
- intellij
- lazy loading
- scanner
- 에스가든스냅
- EFCore
- Store
Archives
- Today
- Total
ejyoo's 개발 노트
ajax 와 FormData를 이용한 비동기 파일 업로드 본문
비동기 업로드를 하기 위해 ajax와 FormData를 이용하는 방법이다.
FormData 는 IE10버전부터 지원한다.
FormData 사용 시 주의점
contentType, processData 옵션을 false로 설정해야 함.
- 왜 false로 주는것인가? ajax로 브라우저에 보낼 때 contentType, processData 설정이 없으면 모두 디폴트로 보냄(true) -> 브라우저 디폴트는 form형식으로 보내는 것임. -> 파일 전송할 때 encType: multipart로 보내야 하므로 꼭 contentType, processData를 false로 해야함.
FormData 사용방법 두가지
1) Form에 작성된 전체 데이터 보내기
2) Form에 작성된 것 중 필요한 것만 선택하여 보내기
FormData - 1) Form에 작성된 전체 데이터 보내기
-form 부분
<form id="formData">
<input type="file" id="picture" name="picture" />
</form>
<script>
var url = "xxx.do";
var formData = new FormData($('#form')[0]);
$.ajax({
url : url,
type : 'post',
data : formData,
cache : false,
contentType : false,
processData : false,
success : function(data){
},
error : function(xhr){
}
});
</script>
FormData - 2) Form에 작성된 것 중 필요한 것만 선택하여 보내기
- script 예시
<script>
var formData = new FormData();
formData.append([key],[value]);
</script>
<form id="formData">
<input type="file" id="picture" name="picture" />
</form>
<script>
var url = "xxx.do";
var formData = new FormData();
formData.append("picture", $("#picture")[0].files[0]);
$.ajax({
url : url,
type : 'post',
data : formData,
cache : false,
contentType : false,
processData : false,
success : function(data){
},
error : function(xhr){
}
});
</script>
FormData - 2) Form에 작성된 것 중 필요한 것만 선택하여 보내기 - 파일이 여러개
<form id="formData">
<input type="file" id="picture" name="picture" />
</form>
<script>
var url = "xxx.do";
var fileRepository = [];
$('input[type="file"]').on('change',function(){
fileRepository.push(this.files[0]);
});
var formData = new FormData();
formData.append("pictures", fileRepository);
$.ajax({
url : url,
type : 'post',
data : formData,
cache : false,
contentType : false,
processData : false,
success : function(data){
},
error : function(xhr){
}
});
</script>
'BackEnd > JAVA Spring' 카테고리의 다른 글
스프링 흐름 (0) | 2021.06.18 |
---|---|
[Spring] 프로젝트 생성, 환경 설정 (0) | 2021.06.15 |
Maven 설치 시 연관 jar 파일 버전 확인 방법 (0) | 2021.06.02 |
[Node] <> 로 이루어진 노드의 타입 상수 (0) | 2021.06.01 |
톰캣 setCharacterEncodingFilter 설정 (0) | 2021.06.01 |