访问 FormData 值

问题描述

我正在尝试向带有多个参数(2 个字符串,1 个 blob)的 PHP 页面发送 XHR 请求,但我无法在 PHP 代码获取这些值..

这是我的代码

JS

function initRequeteUpdImg(blob,file)
{
    img = document.getElementById("id");

    img.src = blob;

    requeteUdpRec = new XMLHttpRequest();
    
    requeteUdpRec.onreadystatechange = callback_ReqUpdRec;
    requeteUdpRec.open("POST","function/Modify_action.PHP",true);
    requeteUdpRec.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    
    function readFile(event) 
    {
        var fileType = file.type;
        blob = blobUtil.arrayBufferToBlob(event.target.result,fileType);

        formData = new FormData();
        formData.append("id",id);
        formData.append("action","updImg");
        formData.append("file",event.target.result);

        requeteUdpRec.send(formData);
    }

    var reader = new FileReader();
    reader.addEventListener('load',readFile);
    reader.readAsArrayBuffer(file)
}

PHP

if(isset($_POST["action"]) && $_POST["action"]=="updImg")`{
    $requete = "select eleve_id from eleves where person_id = ?";
    $req_args = array($_POST['id']);
    $req_type = "i";
    $res = MysqLi_fetch_array(prepared_query($requete,$req_args,$req_type));

    $requete = "update signature SET signature_blob = '".$_POST["file"]."' where eleve_id = ".$res["eleve_id"];

    $res = unprepared_query($requete,$req_type);
}

else
{
    http_response_code (404);
}`

我显然做错了什么,但在哪里......?

我是 JS 新手,所以如果你能详细说明它会非常好! 感谢您的帮助!

编辑:

var_dump($_POST) 的返回:

array(1) {
  ["------WebKitFormBoundaryKNMixbnGfrQKo4ox
Content-disposition:_form-data;_name"]=>
  string(265) ""id"

8
------WebKitFormBoundaryKNMixbnGfrQKo4ox
Content-disposition: form-data; name="action"

updImg
------WebKitFormBoundaryKNMixbnGfrQKo4ox
Content-disposition: form-data; name="file"

[object ArrayBuffer]
------WebKitFormBoundaryKNMixbnGfrQKo4ox--
"

}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)