FileReader если выбрать другой файл
Как сделать так, если я передумал и выбрал другой файл вместо своего первого выбора, Filereader обновился. Потому что он запоминает первый выбор...
function check_ProductPoster() { let FilePoster = document.getElementById("product_poster").files[0], ext = "не определилось"; if (FilePoster === undefined) { alert("undi"); $("#poster_error_message").html("Вы не выбрали файл"); $("#poster_error_message").show(); errorPosterFile = true; } else { if (FilePoster.size <= 0) { alert("в"); $("#poster_error_message").html("Вы не выбрали файл"); $("#poster_error_message").show(); errorPosterFile = true; } else { let parts = FilePoster.name.split('.'); if (parts.length > 1) ext = parts.pop(); if ((FilePoster.type === 'image/jpg' || FilePoster.type === 'image/png' || FilePoster.type === 'image/gif' || FilePoster.type === 'image/jpeg') === false) { $("#poster_error_message").html("Разрешено: png, gif, jpg, jpeg"); $("#poster_error_message").show(); errorPosterFile = true; } else { if ((ext === 'jpg' || ext === 'png' || ext === 'gif' || ext === 'jpeg') === false) { $("#poster_error_message").html("Разрешено: png, gif, jpg, jpeg"); $("#poster_error_message").show(); errorPosterFile = true; } else { const reader = new FileReader(); reader.readAsDataURL(FilePoster); reader.onload = function (e) { const image = new Image(); image.src = e.target.result; image.onload = function () { let height = this.height; let width = this.width; if (height == 328 && width == 246) { $("#name_product_error_message").hide(); } else { $("#poster_error_message").html("Ширина:246, Высота:328"); $("#poster_error_message").show(); errorPosterFile = true; } } } } } } } } |
Если Вы каждый раз при выборе нового файла будете вызывать check_ProductPoster, он и будет обновляться.
Там же const reader = new FileReader() ЗЫ reader.onload = function (e) { const image = new Image(); image.src = e.target.result; Там не должно быть e.target. Это не элемент DOM. Просто image.src = reader.result; |
А зачем проверять mime типы, а затем еще и по расширению, от недоверия? Вообще-то расширение можно прилепить какое угодно к какому угодно файлу, проверять по расширению, это моветон.
Вообще FileReader ничего не запоминает, выбрали новый, значит перерисуйте картинку или в чем проблема? |
Часовой пояс GMT +3, время: 23:33. |