language/jquery
jquery ajax 를 이용한 간편 파일 업로드 ( fileObject 를 바로 업로드 하는 방식 )
CofS
2016. 4. 8. 15:41
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 |