jquery ajax 를 이용한 간편 파일 업로드 ( fileObject 를 바로 업로드 하는 방식 )
2016. 4. 8. 15:41ㆍlanguage/jquery
ajax를 이용하여 파일을 업로드하는 방법을 알아보겠습니다.
물론 input file 태그가 있어도 되고 없어도 됩니다.
이유는 file object 를 FormData에 추가하고 바로 업로드 할꺼니까요
작업을 하다보니 파일객체는 있는데 파일태그는 readonly type 이라서 value 에 추가가 되지 않더라구요
그럴땐 아래 소스를 조금 변경하면 파일객체를 가지고 전송할 수 있습니다.
먼저 jquery 를 import 하는건 기본입니다.
1
2 |
<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
|
cs |
Form 구성입니다.
1
2
3
4
5 |
<form id="FILE_FORM" method="post" enctype="multipart/form-data" action="">
<input type="file" id="FILE_TAG" name="FILE_TAG">
<input type="file" id="FILE_TAG2" name="FILE_TAG2">
<a class="ui-shadow ui-btn ui-corner-all" href="javascript:uploadFile();">전송</a>
</form> |
cs |
javascript 입니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 |
function uploadFile(){
var form = $('#FILE_FORM')[0];
var formData = new FormData(form);
formData.append("fileObj", $("#FILE_TAG")[0].files[0]);
formData.append("fileObj2", $("#FILE_TAG2")[0].files[0]);
$.ajax({
url: '',
processData: false,
contentType: false,
data: formData,
type: 'POST',
success: function(result){
alert("업로드 성공!!");
}
});
} |
cs |
4# ~ 5# : $("#FILE_TAG")[0].files[0] 이 부분이 FileObject 입니다. FileObject 객체가 있다면 대체하면 사용 가능합니다.
위 소스의 브라우저 스팩은 IE10 부터 지원 합니다.
그 이하는 https://github.com/malsup/form/ 여기에서 jquery.form.js 을 다운받고 import 해야합니다.
그리고 다음과 같이 ajaxForm 로 전송해야합니다.
1
2
3
4
5
6
7
8
9 |
var options = {
dataType:"text",//결과
success:function(responseText){
alert("업로드 성공!!");
}, error:function(e){e.responseText();}
};
$("#FILE_FORM").ajaxForm(options).submit(); |
cs |
'language > jquery' 카테고리의 다른 글
[TIP] jquery selector 를 이용해서 여러 태그들에게 한번에 click 이벤트를 걸어보자. (0) | 2016.06.08 |
---|---|
jquery 를 이용하여 태그 좌표 구하기 (절대위치 구하기 / 태그 위치 구하기) (4) | 2016.05.19 |
jquery 를 이용해서 원하는 태그(위치)로 스크롤 이동하기 (83) | 2016.05.11 |
jquery 를 이용하여 화면 맨위로 자연스럽게 올라가는 TOP 버튼 만들기 (26) | 2016.04.21 |
jquery form serialize 를 이용하여 json으로 만들기 (2) | 2016.04.15 |
jquery / 말풍선 플러그인 / poshytip (0) | 2016.01.05 |
jquery / input file tag / 파일명 / file name 구하기 (0) | 2016.01.05 |
jqgrid / resize / 그리드 사이즈를 화면 창에 따라 유동적으로 변경 (0) | 2016.01.05 |
jqgrid / 컬럼 show / hide / checked box / 컬럼 표시, 숨기기 (0) | 2016.01.05 |
jquery / selectBox plugins / 플러그인 모음 (0) | 2016.01.05 |