使用XMLHttpRequest上传的文件不在$ _FILES数组

时间:2017-06-28 16:21:15

标签: javascript php ajax file-upload slim

我正在尝试使用原生javascript和XMLHttpRequest将文件上传到我的PHP Slim Web应用程序。这是我的代码:

var formdata = new FormData();
  var xhr      = new XMLHttpRequest();
  xhr.open('POST', '/foo/bar', true);

  xhr.setRequestHeader('Content-Type', 'multipart/form-data');
  xhr.setRequestHeader('X-File-Name', file.name);
  xhr.setRequestHeader('X-File-Size', file.size);
  xhr.setRequestHeader('X-File-Type', file.type);

  formdata.append("thefile", file);

  xhr.upload.addEventListener('progress', function (e) {
    if (e.lengthComputable) {
      console.log((e.loaded / e.total) * 100);
    }
  }, false);

  return xhr.send(formdata);

根据开发工具,请求已填充并正确发送:

Request 但在另一端,$ _FILES数组是空的。

如果我用基本的HTTP表单POST替换javascript处理,那么文件在$ _FILES数组中可见。很明显,问题在于我的javascript代码,或者是关于服务器不喜欢的javascript上传的内容。

有没有人发现我的javascript代码存在任何问题,或者之前遇到过类似问题?

谢谢!

0 个答案:

没有答案