2016-05-05 16 views
2

これは私を狂ってしまいます!私はなぜajaxがPHPにファイルを送信しないのか理解できませんが、理解できる人は誰ですか?ここでは、コードです:PHPとAJAX FormDataが通信していません

----- ----- HTML

<input id="mmSelectedDoc" name="selectedFiles[]" type="file" multiple></input> 

----- ----- JS

mmSingFile = (document.getElementById("mmSelectedDoc").files)[0]; 

    var mmFilesData = new FormData(); 

    mmFilesData.append("selectedFiles[]", mmSingFile, encodeURIComponent(mmSingFile.name)); 

    var x=new XMLHttpRequest(); 
    x.onreadystatechange = function(e){ 
     if (x.readyState==4 && x.status==200){ 
      console.log(x.responseText); 
     } 
    } 
    log(mmFilesData.get("selectedFiles[]")); 
    x.open("POST","uploader.php", true); 
    x.setRequestHeader("Content-type", "multipart/form-data"); 
    x.send(mmFilesData); 

----- PHP -----

var_dump($_GET); 
var_dump($_POST); 
var_dump($_FILES); 
die(); 

私が送信する前にmmFilesData.get(...)をログインしたとき、私は内部のファイルがあります見ることができますが、onreadystatechangeに= 4上のログとしてのみ空の配列があります。何が起こっている

["-----------------------------172450022319283172571100694258 

Content-Disposition:_form-data;_name"]=> 
    string(813) ""selectedFiles[]"; filename="10434360_995996657086820_5574771356675124169_n.jpg" 

Content-Type: image/jpeg 

��here's in ascii the file content�� 

???:私は、アプリケーションにコンテンツタイプを変更した場合は/ x-www-form-urlencodedで私はポストから取得するには、このような結果をのvar_dump皆さん、ありがとうございました!

答えて

0

フォームデータオブジェクトを送信するときに、xhrオブジェクトにコンテンツタイプを設定しないでください。
append関数でファイル名をuriエンコードしないでください。

+0

大変!!!!!お前しかいない!ありがとうございました!!!!!!!!! –

関連する問題