초코레

파일업로드와 Ajax 옵션 본문

메모

파일업로드와 Ajax 옵션

초코레 2020. 7. 31. 00:59
  • 파일업로드 Ajax 방식은 브라우저에서 지원하는 클래스인 FormData를 이용하는 것
  • FormData는 <form>처럼 key/value가 저장되어 데이터를 처리할 수 있다.
1
2
3
4
5
6
7
8
9
10
11
12
13
var data = new FormData();
data.append('file', file);
$.ajax({
    data: data,
    type: 'post',
    url: '/url',
    dataType: 'text',
    contentType: false,
    processData: false,
    success: function(res) {
        
    }
});
cs
  • ForData에 파일 정보를 append()를 통해 key/value 형식으로 넣는다.
  • dataType : 보내는 데이터 타입이 아니라 서버가 응답할 때 보내줄 데이터 타입. success function에 전달될 argument의 형태를 지정하는 데 사용된다.
  • contentType : default 값은 "application/x-www-form-urlencoded; charset=UTF-8", "multipart/form-data"로 전송되도록 false 설정. 명시적으로 "multipart/form-data"으로 설정해주면 boundary string이 안 들어가 제대로 동작하지 않는다.
    • boundary string : 브라우저에서 넣어주는 전송되는 데이터 영역을 구분해주는 구분자
  • processData : 일반적으로 서버에 전달되는 데이터는 query string 형태이다.
    • ex : http://example.com?title=tit&content=cont
  • data 파라미터로 전달된 데이터를 jQuery 내부적으로 query string 형태로 만드는 데, 파일 전송의 경우 이를 하지 않아야하므로 processData를 false로 설정

참고

 

[파일업로드] Ajax 방식

파일업로드 Ajax 방식의 핵심은 FormData 라는 브라우저에서 지원하는 클래스이다. FormData 는 과 같은 효과를 가져다주는 key/value 가 저장되는 객체이다. 태그처럼 데이터를 처리할 수 있게 해준다.

repacat.tistory.com

'메모' 카테고리의 다른 글

AWS 포트 번호 없이 요청하기  (0) 2020.11.11
ajax에서 보낸 list json을 java에서 받기  (0) 2020.10.04