在Chrome中选择相同的文件时,FileReader onload不会被触发

时间:2015-12-30 17:38:16

标签: javascript html html5 google-chrome

FileReader onload在第二次使用Chrome选择同一个文件时没有被解雇,它会一直被FireFox解雇。

function uploadCover(input) {
    if (input.files && input.files[0]) {
        var reader = new FileReader();
        reader.onload = function(e) {

            var image = new Image();
            image.src = e.target.result;

            image.onload = function () {
               // code
            };
        };
        reader.readAsDataURL(input.files[0]);
    }
}

这里我要验证上传时的图片宽度和高度。因此有两种情况最终会出现问题:

  1. 用户选择相同的图像而不做任何更改。

    此时用户应再次收到验证消息。

  2. 用户编辑了图片并更改了尺寸,再次上传。

    同样文件值未更改,因此上传或验证未被调用。