JAVASCRIPT/JSTL

[JQuery] Ajax 비동기 파일전송

#제이쿼리 #페이지변환없이 #해보자 #multipart/form-data #FormData #한참찾던거 #JS #자바스크립트 #개발 #코딩 #자바

안녕하세요, 배곧동개발자 입니다.

ajax를 통해 비동기 데이터 전송을 많이 하실텐데, 파일을 옴길때는 꼭 폼을 submit 시키는 경향이 있더라구요. 파일도 비동기로 전송할 수 있습니다!


​1. ajax 파일전송 로직

// 특이하게 아이디로 불러왔는데 꼭, 꼭 [0]를 붙혀서 받아야 한다. 빼면 오류남
var formData = new FormData($("#f_form")[0]);

$.ajax({
    url: '전송할 URL',
    type : 'POST',
    enctype: 'multipart/form-data', 
    processData: false,             
    contentType: false,
    cache: false,
    data : formData,
    success: function(data) {
        // 완료 시 진행 될 코드   
    },
    error: function(xhr, textStatus, errorThrown) {
        // 오류 시 진행 될 코드
    }
});

이렇게 FormData를 써서 한번에 넘겨버리면 그만! 당연히 multipart/form-data 는 지켜줘야합니다.


2. 자바에서 받는 로직

이렇게 자바쪽으로 보낸 다음에 자바에서는

MultipartHttpServletRequest mptRequest = (MultipartHttpServletRequest)req;
Iterator<String> fileNames = null;
fileNames = mptRequest.getFileNames();

이르케 파일을 받아주면 되는것이지요- mpt 파일을 그냥 file로 쓰고자하면

String fileName = fileNames.next();
MultipartFile mFile = mptRequest.getFile(fileName);
String saveFileName = mFile.getOriginalFilename();

File newFile = new File(saveFileName);
newFile.createNewFile();

FileOutputStream fos = new FileOutputStream(newFile);
fos.write(mFile.getBytes());

fos.close();

​이런식으로 바꿔서 File로 사용 가능합니다. 딱히 어려운건 없지요!?


파일전송로직 짤때는 이래저래 항상 조심하게되는데, 이 로직 딱 저장해놓으셨다가 필요할때 꺼내 쓰세요!

나중에 내가 기억 안나면 봐야지!!

이만, 배곧동개발자 였습니다.

배곧동개발자

Recent Posts

[MSSQL] 넓은 영어, 띄어쓰기 영어 입력되는 현상 (전각입력/문자폭)

#MSSQL #문자폭 #영어넓이 #쿼리입력안됨 1. MSSQL 영어 입력 안되는 현상 MSSQL을 주로 쓰고 있는데 MSSMS에서…

1개월 ago

[이미르] 다니아믹 키 확실한 해결방법 (커스텀토큰/접속불가)

#레전드오브이미르 #다이나믹키가다릅니다 #커스텀토큰 #접속불가 #오류 #해결방법 1. 다이나믹 키 더럽다! 유저의 다이나믹키가 다릅니다. 위메이드의 레전드…

1개월 ago

[이미르] 대기열 왜 이렇게 길어졌나? (중국작업장/매크로)

#레전드오브이미르 #작업장 #쌀먹 #중국 #매크로 #대기열 1. 운영 문제 있네? 이제 오픈 2주차에 들어온 위메이드의…

2개월 ago

[이미르] 엠틱을 챙겨보자 (스토리덱/마나회복력)

#레전드오브이미르 #엠틱 #마나회복력 #스토리덱 1. 마나가 너무 부족해! 레전드 오브 이미르는 스킬 위주의 액션 게임이라고…

2개월 ago

[이미르] 시구르드와 대화 (위치/메인퀘스트19-19)

#레전드오브이미르 #파괴가남긴것 #시구르드 #19-19 #위치 1. 파괴가 남긴 것 레전드 오브 이미르 메인퀘스트 19-19인 "파괴가…

2개월 ago

[이미르] 트롤의 비밀상자, 트롤의 유적상층 보물상자 위치

#레전드오브이미르 #트롤의비밀상자 #트롤의유적상층 #보물상자 #위치 1. 트롤의 비밀 상자 이번에 알아 볼 의뢰게시판 의뢰는 바로…

2개월 ago