Я хотел бы прочитать «ширину» и «вершину» файла изображения, который я выбираю с помощью элемента ввода HTML (type is file). Моя проблема в том, что я получаю значения 0/0, когда я выбираю файл изображения в первый раз. Когда я выбираю второй файл изображения (неважно, какой из них), я получаю правильные значения для ширины и высоты для первого/предыдущего изображения.HTML5: Тип входного файла - данные для чтения
Как я могу сразу же получить ширину и высоту файла изображения, который я выбрал?
<!DOCTYPE html>
<html>
<head>
\t <meta charset="utf-8">
</head>
<body>
\t <input type="file" id="fileInput" accept="image/*" onchange="handleFiles(this.files)">
\t
\t <script src="https://code.jquery.com/jquery-3.1.1.min.js" integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8=" crossorigin="anonymous"></script>
\t <script>
\t \t var img = new Image();
\t \t //set input back to default on refresh:
\t \t $('#fileInput')[0].value = "";
\t \t
\t \t function handleFiles(fileList) {
\t \t \t if (!fileList.length) {
\t \t \t \t console.log("No files selected!");
\t \t \t } else {
\t \t \t \t console.log(fileList.length);
\t \t \t \t console.log(fileList[0]);
\t \t \t \t
\t \t \t \t img.src = window.URL.createObjectURL(fileList[0]);
\t \t \t \t
\t \t \t \t console.log("src: " + img.src);
\t \t \t \t console.log("width: " + img.width + "/height: " + img.height);
\t \t \t \t
\t \t \t \t img.onload = function() {
\t \t \t \t \t window.URL.revokeObjectURL(this.src);
\t \t \t \t }
\t \t \t }
\t \t }
\t </script>
</body>
</html>
Я пометил ваш ответ полезным, но получаю сообщение: "Спасибо за обратную связь! Голоса, сделанные теми, у кого меньше 15 репутации, записаны, но не изменяйте публично опубликованный рейтинг. – voland