javascript - 如何在 JavaScript 中将 File 对象添加到 FileList 集合?

标签 javascript file-upload drag-and-drop filelist

我正在处理拖放文件上传字段。

我能够返回一个 FileList 对象,其中包含用户指定的文件。我有一个隐藏的文件输入字段,然后我想将文件对象添加到其中,这样我就可以通过 AJAX 发送表单数据。

我遇到的问题是我似乎无法将文件对象复制到文件输入字段。这是我尝试的方式:

var files = evt.dataTransfer.files; // FileList object.
var fileUploadElem = document.getElementById(fileUploadId);

// trying to copy the first file of files into the file upload field
fileUploadElem.files[0] = files[0];

// this statement returns '0' instead of '1'
console.log('fileUploadElem length: '+fileUploadElem.files.length);

感谢任何建议或指示。

最佳答案

这是来自 MDN 的示例关于如何使用 FormData 做到这一点:

function sendForm() {
  var output = document.getElementById("output");
  var data = new FormData(document.getElementById("fileinfo"));

  data.append("CustomField", "This is some extra data");

  var xhr = new XMLHttpRequest();
  xhr.open("POST", "stash.pl", false)
  xhr.send(data);
  if (xhr.status == 200) {
    output.innerHTML += "Uploaded!<br />";
  } else {
    output.innerHTML += "Error " + xhr.status + " occurred uploading your file.<br />";
  }
}

关于javascript - 如何在 JavaScript 中将 File 对象添加到 FileList 集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24167804/

相关文章:

file-upload - 不使用插件的简单cakephp 2.0上传

javascript - 使用 servlet 过滤器将 Javascript 注入(inject)每个 HTML 页面

javascript - NativeScript 中的 Paho MQTT

javascript - 使用 mvc4 在谷歌地图中显示位置

wpf - 无法在没有装饰者的元素上访问装饰者

java - DragGestureEvent 的 startDrag 调用后 JTable 的列错位

javascript - 拖放布局设计器

javascript - 如何使用 javascript 将 JSON 对象操作为数组

java - 使用 RestTemplate 将文件发布到 RESTful 服务

C# 上传带有附加数据的文件