使用FileReader上传多个文件

时间:2019-04-29 04:42:34

标签: jquery html

我正在尝试上传3张照片并对其进行预览。它可以很好地工作,但是当我使用此循环时,显然它将只读取最后一个文件,因为k不会改变。

function readMany(input)
{
    var k = 0 ;
    for (k=0;k<input.files.length;k++)
    {

      console.log(k); // ** ok - print 1,2,3

      var reader = new FileReader();
      reader.onload = function(e)
      {

        var div = document.getElementById( imagePreviews[k] );
        $(div).css('background-image', 'url('+e.target.result +')');
        $(div).hide();
        $(div).fadeIn(850);

        console.log(k); // ** print 3 times the number 3.



      }
      uploadedProductPhotos=input.files;
      reader.readAsDataURL(input.files[k]);


    }

}

1 个答案:

答案 0 :(得分:0)

使用let解决了这个问题:

 for (let k=0;k<input.files.length;k++)

以便k保持其状态。