2014-05-20 3 views
-1

$ .ajax() 함수와 함께 jQuery 플러그인을 사용하고 있습니다. POST로 파일을 업로드하고 완료되면 어떤 기능을 수행 할 수있는 방법이 있습니까? 여기 내 코드 .... 내가 뭘 잘못 했니?

$.ajax({ 
       url: "../index.php?rqst=upload", 
       type: 'POST', 
       data:{ 
        'fileToUpload': $("#fileToUpload").val() 

       }, 
       success: function(data) { 
        alert("file upload"); 
       }}); 

이것은 파일 입력 :

<input class="form-control" type="text" name="fileToUpload" id="fileToUpload"> 

부하시 GIF를 표시하는 방법이이 ??? 미리 감사드립니다.

답변

1

$ .ajax()보다 $ .post()를 사용하는 것이 훨씬 쉽습니다.

당신은 거의 옳습니다. 성공 대신에 사용이 완료되었습니다.

$ .ajax()를 실행하기 직전에 회전식 gif를 어딘가에 배치하는 간단한 DOM 조작 코드를 추가하십시오. 그런 다음 success 콜백 핸들러에서 코드를 제거하여 제거하십시오.

또한 회전로드 아이콘을 만들기위한 자바 스크립트 라이브러리가 있습니다 : http://fgnass.github.io/spin.js/#!

1

먼저 파일에 직접 연결할 수 있는지 확인합니다. 데이터 섹션을 주석 처리하고 URL을 에코 만있는 페이지로 변경하십시오. 그러면 페이지가 연결되어있는 것으로 확인되면 알림을 받게됩니다.

다른 노트에 "index.php? rqst = upload"가 에코를 가지고있어서 성공 함수가 그것을 확인하도록하십시오. 나는 일반적으로 echos 내 else 문을 사용하여 오류가 발생하고 어떤 오류가 발생했는지 알 수 있으므로 js를 사용하여 필요한 메시지를 표시 할 수 있습니다.

2

파일 업로드는 enctype='multipart/form-data'이어야하며 GET과 POST를 섞어서는 안됩니다. 너는하고있어. POST이므로 URL에서 ?rqst=upload을 제거하십시오. 또한 $("#fileToUpload").val()은 실제 파일이 아닌 파일의 이름 만 제공합니다. Ajax로 파일을 업로드하려면 전문 자바 스크립트 라이브러리가 필요합니다. 또한 파일 업로드의 경우 입력 유형은 type='file'이 아니고 type='text'이 아니어야합니다.

관련 문제