javascript - 数组上的多个图像上传 - Javascript/Jquery

标签 javascript jquery arrays

我想通过 JavaScript 上传一些图像数组。我尝试了以下代码:

<script type="text/javascript">
var count =0;
$(document).ready(function() {
  if (window.File && window.FileList && window.FileReader) {
    $("#files").on("change", function(e) {
      var files = e.target.files,
        filesLength = files.length;
        count++;
      for (var i = 0; i < count; i++) {
        var f = files[i]
        var fileReader = new FileReader();
        fileReader.onload = (function(e) {
          var file = e.target;
          $("<span class=\"pip\">" +
            "<img class=\"imageThumb\" src=\"" + e.target.result + "\" title=\"" + file.name + "\"/>" +
            "<br/><span class=\"removeImg\">Remove image</span>" +
            "</span>").insertAfter("#files");
          $(".removeImg").click(function(){
            $(this).parent(".pip").remove();
          });

          // Old code here
          /*$("<img></img>", {
            class: "imageThumb",
            src: e.target.result,
            title: file.name + " | Click to remove"
          }).insertAfter("#files").click(function(){$(this).remove();});*/

        });
        fileReader.readAsDataURL(f);
      }
    });
  } else {
    alert("Your browser doesn't support to File API")
  }
});
</script>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

HTML

  <div class="field" align="left">
      <h3>Upload your images</h3>
      <input type="file" id="files" name="files[]" multiple />
    </div>

但是在某个地方,当我单击表单上的提交按钮时,它只向我发送一个文件的数组,这是最后更新的文件。我想要它的数组..以便我稍后可以处理该数据。

请帮帮我。

最佳答案

我已经测试了您的代码,它工作正常,您只需要将 for 循环中的 count 变量替换为 filesLength 变量,然后您将获得所有图像,而不是您之前获得的最后一张图像!下面是更正后的代码。运行代码,它将为您工作!在 upload.php 中写入时,您将获得您选择的图像数量!

 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script>
<script type="text/javascript">
var count =0;
$(document).ready(function() {
  if (window.File && window.FileList && window.FileReader) {
    $("#files").on("change", function(e) {

      var files = e.target.files,
        filesLength = files.length;
        console.log(filesLength);
        count++;
      for (var i = 0; i < filesLength; i++) {
        var f = files[i]
        var fileReader = new FileReader();
        fileReader.onload = (function(e) {
          var file = e.target;
          $("<span class=\"pip\">" +
            "<img class=\"imageThumb\" src=\"" + e.target.result + "\" title=\"" + file.name + "\"/>" +
            "<br/><span class=\"removeImg\">Remove image</span>" +
            "</span>").insertAfter("#files");
          $(".removeImg").click(function(){
            $(this).parent(".pip").remove();
          });

          // Old code here
          /*$("<img></img>", {
            class: "imageThumb",
            src: e.target.result,
            title: file.name + " | Click to remove"
          }).insertAfter("#files").click(function(){$(this).remove();});*/

        });
        fileReader.readAsDataURL(f);
      }
    });
  } else {
    alert("Your browser doesn't support to File API")
  }
});
</script>


<form id="imageform" method="post" enctype="multipart/form-data" action="upload.php">
  <div class="field" align="left">
      <h3>Upload your images</h3>
      <input type="file" id="files" name="files[]" multiple />
    </div>
    <input type="submit" name="submit" value="Submit">
</form>


    <form id="imageform" method="post" enctype="multipart/form-data">
      <div class="field" align="left">
          <h3>Upload your images</h3>
          <input type="file" id="files" name="files[]" multiple />
        </div>
        <input type="submit" name="submit" value="Submit">
    </form>

关于javascript - 数组上的多个图像上传 - Javascript/Jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37247729/

相关文章:

javascript - 使用javascript将txt文件读入文本区域

javascript - handle-callback-err 预期要处理的错误

javascript - 为什么我在图形后面添加背景图像后不再起作用?

javascript - 如何在 jQuery 中仅提取 window.location.pathname 的最后部分? (具体内容在里面)

c++ - 在 C++ 中通过引用传递结构数组

javascript - 如何使用javascript从表单的特定部分将表单属性 "name"和 "value"收集到数组中?

javascript - 如何在内容添加到 div 时自动滚动?

javascript - Cordova 的 slider

jquery使用递归函数更改背景颜色

c - 在 C 中使用 fscanf() 扫描数组的问题