【问题标题】:Warning: Missing boundary in multipart/form-data POST data in Unknown on line 0警告:第 0 行未知中的多部分/表单数据 POST 数据中缺少边界
【发布时间】:2015-02-22 12:04:32
【问题描述】:

我正在开发文件上传器,它在输入更改时上传图像我的 html 表单代码是

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

我的 JavaScript 和 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);
        };

而我的php代码很简单,就是测试一切是否正常

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 
}

我从服务器收到的请求是警告:第 0 行未知的多部分/表单数据 POST 数据中缺少边界,但我发送了表单数据和请求标头并打开了文件。

【问题讨论】:

    标签: javascript php ajax html xmlhttprequest


    【解决方案1】:

    您只需删除以下行:

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

    【讨论】:

    • 救了我的命,TY!
    【解决方案2】:

    而不是以multipart/form-data 发送数据:

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

    您应该将其发送为application/json:

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

    【讨论】:

    • 如果非要上传utf-8文件名?
    猜你喜欢
    • 2017-03-26
    • 2016-05-01
    • 1970-01-01
    • 2014-10-31
    • 2015-08-30
    • 1970-01-01
    • 2014-05-07
    • 2016-01-15
    • 2021-10-24
    相关资源
    最近更新 更多