2017-07-25 17 views
-1

PHPを使ってファイルを含むいくつかのデータを取り除いています。私はちょうどそれをHTMLにして、うまくいけばそれを投稿しますが、Ajaxでアップロードしようとしていません。AJAXを使ってファイルをアップロードする

$scope.aceptar = function() {   
    var form = $('form');   
    var formData = new FormData(form); 
    var file_1 = document.getElementById('file_1').files[0]; 
    var file_2 = document.getElementById('file_2').files[0]; 
    var file_3 = document.getElementById('file_3').files[0]; 

    formData.append(file_1.name, file_1); 
    formData.append(file_2.name, file_2); 
    formData.append(file_3.name, file_3); 

    $.ajax({      
     method: "post", 
     url: "http:dsfs43r4.php",      
     data: formData, 
     processData: false,         
     async: false, 
     success: function(data) {   
      console.log(data); 
     },  
     error: function(data) { 
      alert("error"); 
     }  
    }); 
} 

とPHPで私は$ _FILESのエコーが、私はクロームコンソール上の答えとして

array(0) {} 

を取得しています。

編集:

私はちょうど行う場合:

<form id="theForm" enctype="multipart/form-data" action="http://ge/_m.php" method="post">  

<button type="submit" ng-click="aceptar()">Aceptar</button> 
</form> 

私が得るこの$ _POST - 私は期待していていることである:

配列(15){ ["Lote"] = > 文字列(8) "tyrrtyrw" ["Kg__muestra"] = > ストリング(0) "" [ "Kg__ceb__aprovechable"] = > 列(0) "" [ " -/50_mm"] = > 列(0) "" [ "50/60_mm"] = > ストリング(0) "" [ "60/75_mm"] = > 列(0) "" [ "75/90_mm"] = > 列(0) "" [ "90/+ _ MM"] = > ストリング(0) "" [ "Kg__destrío"] = > 列(0) "" [ "Kg__podridos"] = > ストリング(0) "" [ "Kg__merma"] = > 列(0) "" [ "Kg__podrido_interno"] = > 列(0) "" [ "Kg__germinación_int__1/ 3"] = > 列(0 ) "" [ "Kg__germinación_int__2/ 3"] = > 列(0) "" [ "Cantidad_en_Kg _"] = > 列(0) "" } Hubo未problemaらsubirロスficheros。

だから私はIDKを使ってやっているので、同じ結果が得られません。

+0

あなたの要求のコンテンツタイプのヘッダ値は何ですか? multipart/form-dataでなければなりません。 –

+2

最初に気付いたのは 'http:dsfs43r4.php'です。それは' http:// yourdomain.com/dsfs43r4.php'です。 –

+0

あなたのPHPファイルに** $ _ FILES GLOBAL **がない場合、** var_dump($ _POST)**だけがあなたのデータを見る –

答えて

1

ここで私はAJAXフォームアップロードを有効にするためにそれを調整し、それはあなたのために仕事をする必要があります!私の例のファイルを持つ要素は#evidenceです

   var jform = new FormData(); 
       jform.append('supply_id',supply_id); 
       jform.append('fuel_usage',$('#fuel_usage').val()); 
       jform.append('cost',$('#cost').val()); 
       jform.append('currency',$('#currency').val()); 
       jform.append('reading',$('#reading').val()); 
       jform.append('data_source',$('#data_source').val()); 
       jform.append('date_from',$('#date_from').val()); 
       jform.append('date_to',$('#date_to').val()); 
       jform.append('evidence',$('#evidence').get(0).files[0]); 
       jform.append('comments',$('#comments').val()); 

       $.ajax({ 
        url: '/your-form-processing-page-url-here', 
        type: 'POST', 
        data: jform, 
        dataType: 'json', 
        mimeType: 'multipart/form-data', 
        contentType: false, 
        cache: false, 
        processData: false, 
        success: function(data, status, jqXHR){ 
         alert('Hooray! All is well.'); 
         console.log(data); 
         console.log(status); 
         console.log(jqXHR); 

        }, 
        error: function(jqXHR,status,error){ 
         // Hopefully we should never reach here 
         console.log(jqXHR); 
         console.log(status); 
         console.log(error); 
        } 
       }); 
関連する問題