多个文件上传以仅显示文件名

时间:2018-10-31 21:21:57

标签: javascript jquery jquery-ui file-upload twitter-bootstrap-3

我需要获取JSFIDDLE DEMO才能保持上传多个文件的功能,但是要显示预览,我只需要显示多个文件名。

这是用于上传文件的JSFIDDLE JS:

$(document).ready(function() {
   if (window.File && window.FileList && 
window.FileReader) {
    $("#files").on("change", function(e) {
      var files = e.target.files,
        filesLength = files.length;
      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=\"remove\"><i class='fa fa-times'></i></span>" +
            "</span>").insertAfter("#files");
          $(".remove").click(function() {
            $(this).parent(".pip").remove();
          });
        });
        fileReader.readAsDataURL(f);
      }
    });
  } else {
    alert("Your browser doesn't support to File 
API")
  }
});

此外,我只需要能够上传以下文件类型:.jpg,.png,.pdf,.xlsx和.docx。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

  1. 如果只想显示文件名,则不需要使用img标签。您可以按以下方式更改代码。

    if (window.File && window.FileList && window.FileReader) {
                    $("#files").on("change", function (e) {
                        var files = e.target.files,
                            filesLength = files.length;
                        for (var i = 0; i < filesLength; i++) {
                            var f = files[i];
                            $("<span class=\"pip\">" +
                                    "<br/><span class=\"remove\"><i class='fa fa-times'></i>"+ f.name + "</span>" +
                                    "</span>").insertAfter("#files");
                                $(".remove").click(function () {
                                    $(this).parent(".pip").remove();
                                });
                        }
                    });
                } else {
                    alert("Your browser doesn't support to File API")
                }

  1. 对于第二个问题,您可以将html中可接受的类型定义为

<div class="file-loading">
                                        <input type="file" id="files" name="files[]" multiple accept=".jpg,.png,.pdf,.xlsx,.docx"/>
                                    </div>