• 분류 전체보기 (160)
    • 개인프로젝트 (5)
      • 시연영상모음 (4)
      • 주저리주저리.. (1)
    • 자바스크립트이야기 (69)
      • ExtJS (30)
      • ExtJS 유의사항 (3)
      • HTML5 (1)
      • jQuery (17)
      • jQuery플러그인소개 (9)
      • jQuery UI 소개 (9)
    • 스프링연동하기 (23)
      • spring3 mvc 설정 (4)
      • spring3 mybatis 설정 (4)
      • spring3 기타설정 (11)
      • ibatis and mybatis (4)
    • DB (26)
      • MySQL vs MS-SQL vs O.. (5)
      • MySQL (10)
      • MSSQL (5)
      • Oracle (6)
    • 서버에웹환경구축하기 (13)
      • 1.VirtualBox+CentOS .. (5)
      • 2.JAVA(JDK) 설치 (1)
      • 3.Apache+Tomcat 설치 (3)
      • 4,SVN Server 설치 (1)
      • 5.마리아DB(MariaDB) 설치 (2)
      • 6.몽고DB(MongoDB)설치 (1)
    • 샘플소스 (14)
      • 샘플소스(JAVA) (7)
      • 샘플소스(JSTL) (4)
      • 샘플소스(jQuery/스크립트) (3)
    • 에디터연동 (5)
      • NAVER-스마트에디터 (4)
      • DAUM-다음에디터 (1)
    • 블로그팁 (3)
    • 디지털이야기 (2)
댓글
/67
2014. 6. 26. 16:49
[jQuery ajax fileupload] ajax 파일업로드

목    표

● 어떻게 파일을 서버에서 받는가?

● html 폼을 비동기방식으로 파일과 함께 전송을 할수 있는가?


개발환경

● 이클립스

● IE / 크롬브라우저

● jdk 1.7 / tomcat7


사용 스크립트

● jQuery  [다운로드] 


    또는 

<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>


● jQuery Form Plugin [다운로드]



● html 페이지 부분

    

1) html페이지에 jquery와 jquery form 플러그인을 import 해주자         

<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="/js/jquery.form.js"></script>

2) jQuery form 플러그인을 사용하여 ajax 전송하는 스크립트를 넣어주자

    * 전에 button태그로 진행했었지만, submit 태그로도 해도 무관하니 input type="submit" 

      으로 해주자

$(function(){
	//폼전송
	$('#ajaxform').ajaxForm({
	   //보내기전 validation check가 필요할경우
            beforeSubmit: function (data, frm, opt) {
			                alert("전송전!!");
			                return true;
			              },
            //submit이후의 처리
            success: function(responseText, statusText){
            	alert("전송성공!!");
            },
            //ajax error
            error: function(){
            	alert("에러발생!!");
            }                               
          });
});

3) html태그를 작성해주자

<form id="ajaxform" action="/saveFileTest.do" method="post" enctype="multipart/form-data">
		<input type="text" name="test2"/><br/>
		<textarea rows="10" cols="10" name="test3"></textarea><br/>
		<input type="file" name="test4" />
		<input type="submit" value="Submit" />
</form>

위와같이 코드를 한후 서버에서 데이터들정보를 받아보면 정상적으로 데이터및 파일들을 받을수 

있는것을 확인할수 있다.



두번째 방법으로는 FormData() 객체를 사용하는 것인대 IE9부터인가부터 지원이 되는걸로 

알고 있다.

시범삼아 이방법으로도 테스트를 해보자

두번째방법은 jquery 만 있으면 됨 jquery form plugin 필요없음(x)


ajax 파일업로드 두번째방법 스크립트부분


	$(function(){
          $("#btn").click(function(){
        	  var formData = new FormData();
        	  formData.append("test2", $("input[name=test2]").val());
        	  formData.append("test3", $("textarea[name=test3]").text());
        	  formData.append("test4", $("input[name=test4]")[0].files[0]);
        	 
        	  $.ajax({
        	    url: '/saveFileTest.do',
        	    data: formData,
        	    processData: false,
        	    contentType: false,
        	    type: 'POST',
        	    success: function(data){
        	    	alert("EE");
        	    }
        	  });

          });
	});

ajax 파일업로드 두번째방법 html 부분

<form id="ajaxform" action="/saveFileTest.do" method="post" enctype="multipart/form-data">
		<input type="text" name="test2"/><br/>
		<textarea rows="10" cols="10" name="test3"></textarea><br/>
		<input type="file" name="test4" />
		<input type="button" id="btn" value="전송" />
</form>




괜찮지 아니한가


저작자표시 (새창열림)

'자바스크립트이야기 > jQuery플러그인소개' 카테고리의 다른 글

jQuery blockUI를 이용한 모달창(일명 레이어팝업 또는 다이얼로그창) 출력하기  (0) 2014.08.20
[jQuery cookie] jquery로 쿠키($.cookie, $.removeCookie) 를 저장/불러오기/삭제해보도록 하자  (0) 2014.08.18
[jQuery prettyDate] 페이스북처럼 등록일 조금더 보기좋게 꾸미기  (0) 2014.06.18
[jQuery jqGrid] 데이터 목록을 그리드로 좀더 깔끔하게 사용하기  (0) 2014.06.13
[jQuery validation] alert으로 validation 체크하는거 지겨우신가요?  (0) 2014.06.13

티스토리툴바