2014-12-24 10 views
8

Sto lavorando a uploader di file che caricare l'immagine quando l'ingresso è cambiato il mio codice per il modulo in html èAvviso relativo alla mancanza di confine nei dati multipart/form-data POST in Unknown on line 0

<form method="post" enctype="multipart/form-data"> 
    <input name="uploaded[]" type="file" id="file_upload"/> 
</form> 

il mio Javascript e Ajax:

 document.getElementById("file_upload").onchange = function() { 
      var id = document.getElementById("user_id").innerHTML; 
      var file = document.getElementById("file_upload").files[0]; 
      alert(file.size); 
      var formdata = new FormData(); 
      formdata.append("filer",file,true); 
      var ajax = new XMLHttpRequest(); 
      ajax.onreadystatechange = 
      function(){ 
       if(ajax.readyState==4 && ajax.status==200){ 
        document.getElementById("one").remove(); 
        var img = document.createElement('img'); 
        var first_path = '/user_image/'; 
        var path = first_path.concat(id,'.png'); 
        img.setAttribute('alt','User image'); 
        img.setAttribute('id','one');       
        img.setAttribute('src',path); 
        document.getElementById("user").appendChild(img); 
        alert("end"); 
       }  
       else{ 
        document.getElementById("one").remove(); 
        var img = document.createElement('img'); 
        img.setAttribute('src','/img/loading.gif'); 
        img.setAttribute('alt','User image'); 
        img.setAttribute('id','one'); 
        document.getElementById("user").appendChild(img);       
       } 
      }    
      ajax.open("POST","upload_image.php"); 
      ajax.setRequestHeader("Content-Type", "multipart/form-data"); 
      ajax.send(formdata); 
     }; 

e il mio codice PHP è semplice è solo per verificare se tutto è ok

require("../includes/config.php"); //config folder to start the session 
if($_SERVER["REQUEST_METHOD"]=="POST"){ 
     echo '<pre>',print_r($_FILES),'</pre>'; //dumping some variable and arrays to see where the problem is 
} 

La richiesta che ottengo dal server è Warning: Missing boundary in dati POST multipart/form-data in Unknown sulla linea 0 ma ho inviato il formdata e l'intestazione della richiesta e ho aperto il file.

risposta

12

È necessario rimuovere solo la seguente riga:

ajax.setRequestHeader("Content-Type", "multipart/form-data");

0

Invece di inviare i dati come multipart/form-data:

ajax.setRequestHeader("Content-Type", "multipart/form-data"); 

Si dovrebbe inviarlo come application/json:

ajax.setRequestHeader("Content-Type", "application/json"); 
+0

Se devi caricare un nome file utf-8? – gtzinos