Javascript添加多个文件输入

时间:2017-03-20 13:40:15

标签: javascript php jquery file input

我有一个表单和文件输入。我想从另一个文件夹中选择图像。

$(document).ready(function() {
  var filesToUpload = [];
  var files1Uploader = $("#sell-images").fileUploader(filesToUpload, "images[]");

  $("#sell-images").on('change',function(e) {
    e.preventDefault();

当我发送表单时,我需要查看所有选定的图像,但我只看到最后选择的图像。

例如,我第一次选择2个文件。选择5个文件并提交表单后,我只看到最后选择的文件,但我需要发送所有7个文件。有可能??

    console.log($("#sell-images")[0].files);

    var formData = new FormData();

    for (var i = 0, len = filesToUpload.length; i < len; i++) {
      formData.append("files", filesToUpload[i].file);
    }
  });
});

我有文件计数器的这个功能:

$_FILES

这是我的onchange函数:

package.json

这里我在控制台中看到来自另一个文件夹的所有选定文件

index.js

这里我有所有选定的文件,但是当我想选择一个新文件并在我的PHP文件中发送帖子时,全局变量{{1}}仅向我显示最后选择的文件。

如何发送所有选定的文件?

每次选择带有JavaScript的文件时,我都可以使用其他技术来隐藏输入并创建新文件,但我不希望这样。

1 个答案:

答案 0 :(得分:0)

  

...,但我需要发送所有7个文件。有可能??

是的,这是可能的。

  

如何发送所有选定的文件?

对多个文件使用the array syntax。使用当前实现,最后一个文件将覆盖formData对象中的所有先前条目。所以更新这一行:

formData.append("files", filesToUpload[i].file);

对此:

formData.append("files[]", filesToUpload[i].file);

这样就可以发送数组filesToUpload中的所有文件,而不仅仅是最后一个文件。

请参阅this plunker中演示的内容。