2014-12-24 21 views
8

tôi đang làm việc trên người tải lên tập tin đó tải lên các hình ảnh khi đầu vào thay đổi mã của tôi đối với hình thức trong html làCảnh báo: Thiếu ranh giới trong dữ liệu multipart/form-data POST trong Unknown on line 0

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

JavaScript của tôi và 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); 
     }; 

và mã php của tôi là đơn giản chỉ là để kiểm tra xem mọi thứ là 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 
} 

Yêu cầu mà tôi nhận được từ máy chủ là Cảnh báo: Thiếu ranh giới trong dữ liệu POST/dữ liệu biểu mẫu dữ liệu trong Không xác định trên dòng 0 nhưng tôi đã gửi biểu mẫu và tiêu đề yêu cầu và tôi đã mở tệp.

Trả lời

12

Bạn phải chỉ loại bỏ các dòng sau:

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

0

Thay vì gửi dữ liệu như multipart/form-data:

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

Bạn nên gửi nó như application/json:

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

Nếu bạn phải tải lên tên tệp utf-8? – gtzinos

Các vấn đề liên quan