使用javascript和jquery以表单的形式从类型文件的输入上传文件数据

Upload file data from input of type file in a form using javascript and jquery

本文关键字:文件 类型 输入 数据 javascript jquery 使用 表单      更新时间:2023-09-26

我有一个输入类型为file的from,我需要在不刷新页面的情况下从该表单获取文件数据我正在尝试使用这个功能

function submitForm(form){
  var url = $(form).attr("action");
  var formData = {};
  $(form).find("input[name]").each(function (index, node) {
     formData[node.name] = node.value;
  });
  $.post(url, formData).done(function (data) {
     alert(data);
  }); 
}

但是这个函数获取表单输入的值,但我需要获取所有文件数据(tmp_name、file_name、file_type…)
所以有人能帮我吗
提前感谢

也许您可以通过id引用类型文件的输入,然后获取files属性以获取有关文件的信息。然后可以循环浏览文件,例如读取File对象的namesizetype属性。

https://developer.mozilla.org/en-US/docs/Using_files_from_web_applicationshttps://developer.mozilla.org/en-US/docs/Web/API/File

例如

$("#theForm").submit(function(e) {
  submitForm(this);
  e.preventDefault();
});
function submitForm(form) {
  var url = $(form).attr("action");
  var formData = {};
  formData.filesInfo = [];
  var files = $('#inputFile').prop("files");
  $(files).each(function() {
    var fileInfo = {};
    fileInfo.name = this.name;
    fileInfo.size = this.size;
    fileInfo.type = this.type;
    formData.filesInfo.push(fileInfo);
  });
  $.post(url, formData).done(function (data) {
    alert(data);
  });
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="theForm">
    <input type="file" id="inputFile">
    <input type="submit" name="submit" id="submit">
</form>