У меня следующий код, который проверяет, является ли я файл .jpg, .jpeg или .png:
<!DOCTYPE html>
<html>
<body>
<input type="file" align="center" accept=".jpg,.jpeg,.png" onchange="this.size = Math.max(this.value.length, 7)+15;read(this)" id="myinput" style="min-width: 50px;"
/>
</body>
</html>
<script>
var myfile=""
async function read(input) {
var file = input.files[0];
var idxDot = file.name.lastIndexOf(".") + 1;
var extFile = file.name.substr(idxDot, file.name.length).toLowerCase();
if (extFile=="jpg" || extFile=="jpeg" || extFile=="png"){
//fileContent = await readFile(file);
myfile=file
alert("Valid file selected!");
}else{
alert("Only jpg, jpeg or png allowed");
input.value = myfile;
}
}
</script>
Я пытаюсь, чтобы, если файл, отличный от этого, был выбран последним значением отображает принятый действительный файл.
Но это происходит только в начале, после того, как был взят действительный файл. если я выберу другой, путь, показанный во входных данных, изменится на путь выбранного файла, даже если он недействителен.
Есть ли способ решить эту проблему, поэтому отображаемый путь всегда является одним из последний действительный файл?