Javascript 从XHR事件访问文件名

Javascript 从XHR事件访问文件名,javascript,ajax,xmlhttprequest,Javascript,Ajax,Xmlhttprequest,我正在使用XMLHttpRequest上传一个文件。在事件完成时,我想要文件名-服务器AWS S3不返回带有该信息的响应。访问此文件名的正确方式是什么?如果我用xhr.filename='abc.jpg'重载XMLHttpRequest,我可以在事件中访问它,但看起来有点不干净。我试着设置一个请求头,但在返回的事件中看不到访问该请求头的方法。是否有更好的方法?是的,我可以重新格式化我的作用域等,但我对访问返回事件中的文件名特别感兴趣 function upload() { var xhr

我正在使用XMLHttpRequest上传一个文件。在事件完成时,我想要文件名-服务器AWS S3不返回带有该信息的响应。访问此文件名的正确方式是什么?如果我用xhr.filename='abc.jpg'重载XMLHttpRequest,我可以在事件中访问它,但看起来有点不干净。我试着设置一个请求头,但在返回的事件中看不到访问该请求头的方法。是否有更好的方法?是的,我可以重新格式化我的作用域等,但我对访问返回事件中的文件名特别感兴趣

function upload() {

  var xhr = new XMLHttpRequest();
  xhr.upload.addEventListener("progress", uploadProgress, false);
  xhr.addEventListener("load", uploadComplete, false);
  xhr.addEventListener("error", uploadFailed, false);
  xhr.addEventListener("abort", uploadCanceled, false);

  xhr.setRequestHeader("X-File-Name", file.name);  // how to access this?
  xhr.filename = file.name; // works but seems a bit unclean imo

  scope.progressVisible = true;
  xhr.send(data);


  }, function(err) {
    console.log(err);
  });
};


function uploadComplete(evt) {
   // I want the file name here as part of this function's parameters (i.e. evt - doesn't seem to return anymore params than that)
}

为什么不;你不能把文件名传下去吗?load,functione{uploadComplete,file.name;},false;或者让函数活在上传中,变量将在作用域中。我目前已将其移动到作用域中。这是为了让我更好地理解是否有办法查看我在evt中发送的请求头之类的内容-我有点惊讶,在事件中我没有看到任何与我发送的数据相关的信息,这就是我发布的原因。