从XHR事件访问文件名

时间:2013-10-18 19:26:54

标签: javascript ajax xmlhttprequest

我正在使用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)
}

0 个答案:

没有答案