通过formData xhr请求发布数据后无法访问文件数组

时间:2018-07-10 06:50:02

标签: javascript php

我正在开发一个脚本,该脚本应该显示已上传文件的上传百分比(非常简单的内容)。

我遵循了this的示例,并且在安全方面做了一些细微的修改。

在阅读了git上的所有注释之后,我认为它可以很好地工作-但是由于某些原因,当我尝试在 PHP 中输出$_FILES数组时,它会返回一个空数组。


这是我的脚本

JavaScript( static.example.com/uploader.js ):

let formData = new FormData(),
    xhr = new XMLHttpRequest();

// file is defined earlier
formData.append("file", file);

xhr.open("POST", "//ajx.example.com/upload.php");
xhr.onprogress = function(e){
    console.log("Uploading");
}

xhr.onreadystatechange = function(){
    if(xhr.readyState == 4){
        if(xhr.status == 200)
            console.log("Server response:", JSON.parse(xhr.responseText));
        else
            return console.error("There was an error.");
    }
}
xhr.send(formData);

PHP ajx.example.com/upload.php ):

header("Access-Control-Allow-Origin: http://www.example.com", false);
header("Content-type: application/json;charset=utf-8", false);

/*
*    returns array(0){} 
*/
echo var_dump($_FILES);
die();

我不知道为什么会这样,而且我的代码似乎还不错。

感谢所有帮助,
干杯。

编辑:
我注意到上传器在一些文件上可以正常工作。 php.ini已为所有内容正确配置。但是,如果我测试了两个 mp3 文件(例如),则 mp3 文件之一将无法工作。好像有些文件已损坏-但它们没有损坏。

0 个答案:

没有答案