2014-10-13 3 views
1

예를 들어 How can I upload files asynchronously?이라는 좋은 예제 BTW를 작성했습니다.POST를하지 않는 Ajax를 사용하여 여러 파일 업로드

내 POST는 내 PHP 파일을 만들고 있지 않습니다. 심지어 내가 print_r($_POST) 배열이 비어 있습니다. 이 스크립트로 2 개의 필드를 전달하려고합니다.

내 PHP 파일에서 echo "test";을 간단히 수행하면 해당 문자열이 반환됩니다.

는 또한 여전히 운이

var words = $('#words').attr('value'); 
var file = $('#file').attr('value'); 
var formData = new FormData(); 
formData.append("words", words); 
formData.append("file", file); 

inserttest.php ...

<head> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js"></script> 
<script type="text/javascript"> 
$(document).ready(function() { 
    $(':button').click(function(){ 
     var formData = new FormData($('form')[0]); 
     $.ajax({ 
      url: 'inserttest.php', //Server script to process data 
      type: 'POST', 
      xhr: function() { // Custom XMLHttpRequest 
       var myXhr = $.ajaxSettings.xhr(); 
       if(myXhr.upload){ // Check if upload property exists 
        myXhr.upload.addEventListener('progress',progressHandlingFunction, false); // For handling the progress of the upload 
       } 
       return myXhr; 
      }, 
      success: function(data) { 
       alert(data);  
      }, 
      data: formData, 
      cache: false, 
      contentType: false, 
      processData: false 
     }); 
    }); 
}); 
function progressHandlingFunction(e){ 
    if(e.lengthComputable){ 
     $('progress').attr({value:e.loaded,max:e.total}); 
    } 
} 
</script> 
</head> 
<form enctype="multipart/form-data"> 
    <input type="text" name="words" id="words" /> 
    <input name="file" type="file" id="file" /> 
    <input type="button" value="Upload" /> 
</form> 
<progress></progress> 

var formData = new FormData($('form').serialize());이 한 단계 더 툭 시도하지하고 formData로에게 먼 길을 만들어 시도 됨

<?php 
echo print_r($_POST); 
?> 

<?php 
echo print_r($_FILES); 
?> 
+0

당신은 ['$ $ _FILES'] (http://php.net/manual/en/reserved.variables.files.php)를 통해 파일을 찾을 것입니다. –

+0

방금 ​​php를'echo print_r ($ _FILES);'여전히 공백 배열로 돌아옴 –

+0

웹 서버 로그를 살펴보아야 할 수도 있습니다. PHP 또는 서버 설정을 수정해야 할 수도 있습니다. 시간 제한, 메모리 제한, 크기 제한 , 크로스 도메인 보안, 목록에 간다. – tremor

답변

0

사용하고있는 JQuery와 버전은 오래된이며,이 기능을 지원하지 않습니다!
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js"></script>
... 버전 1.9.1로 :
변경 버전 1.3.0
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
... 그리고 작동! : D

관련 문제