Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/29: Рейтинг темы: голосов - 29, средняя оценка - 4.69
0 / 0 / 1
Регистрация: 12.03.2018
Сообщений: 331

Как узнать разрешение изображения при загрузке?

05.03.2020, 17:54. Показов 5956. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как узнать разрешение загружаемого изображения через инпут? javascript или jquery. В реальном времени, то есть до загрузки на сервер...
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.03.2020, 17:54
Ответы с готовыми решениями:

Как поменять разрешение при загрузке системы?
Доброго времени суток. Ситуация такая. Решил сделать Nas сервер, откопал старую мать с процем s754 оперативой ддр1 512мб и какой-то...

как поставить максимальное разрешение экрана при загрузке ПК
как поставить максимальное разрешение экрана именно в момент загрузки логотипа мат платы и всего остального, в биосе облазил все, не могу...

При загрузке Window 7 меняется разрешение экрана
При загрузке Window 7 меняется разрешение экрана. У монитора разрешение 1680х1050, устанавливается 600х800. Каждый раз делаю так: правая...

12
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
05.03.2020, 18:27
Лучший ответ Сообщение было отмечено koks_ikkkk как решение

Решение

Цитата Сообщение от koks_ikkkk Посмотреть сообщение
Как узнать разрешение загружаемого изображения через инпут?
Что-то такое

PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
  <form  class="inp" enctype="multipart/form-data">
   <p>Загрузите ваши фотографии на сервер</p>
   <p><input type="file" id="input" multiple accept="image/*,image/jpeg">
   <input type="submit" value="Отправить"></p>
  </form>
  <script>
    const inp = document.querySelector('.inp')
    inp.addEventListener('submit', e =>{
        e.preventDefault()
        let selectedFile = document.getElementById('input').files[0];
        
        const reader = new FileReader();
 
        reader.readAsDataURL(selectedFile);
        reader.onload = function (e) {
            const image = new Image();
            image.src = e.target.result;
 
            image.onload = function () {
              var height = this.height;
              var width = this.width;
              alert(`Ширина: ${width}, высота: ${height}`);
              return true;
            };
        }
    })
  </script>
1
0 / 0 / 1
Регистрация: 12.03.2018
Сообщений: 331
05.03.2020, 19:41  [ТС]
А что делает preventDefault простыми словами?
0
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
05.03.2020, 20:09
Цитата Сообщение от koks_ikkkk Посмотреть сообщение
А что делает preventDefault простыми словами?
Останавливает обработку формы
1
0 / 0 / 1
Регистрация: 12.03.2018
Сообщений: 331
06.03.2020, 00:57  [ТС]
Когда выбираю файл с не правильным разрешением, выводит ошибку (то есть работает правильно), но если же опять нажму чтобы поменять на правильный файл с правильным разрешением. То функция не выполняется заново(Не срабатывает change и click, а может и срабатывает, но объект не меняется(const reader = new FileReader();
) и следовательно вывод об ошибке не исчезает, хотя я выбрал полностью соответствующий файл условиям.

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
    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;
                                }
 
 
                            }
                        }
 
                    }
                }
            }
        }
 
    }
Добавлено через 2 минуты
Я понял в чём проблема, объект не меняется... Как исправить?
0
0 / 0 / 1
Регистрация: 12.03.2018
Сообщений: 331
06.03.2020, 20:00  [ТС]
Помогите плис)) Инфы в инете не могу найти... Просто я php я сделал проверку, но мне надо чтобы в реальном времени человек знал, что не так...

Добавлено через 1 час 2 минуты
Как сделать так, если я передумал и выбрал другой файл вместо своего первого выбора, Filereader обновился. Потому что он запоминает первый выбор...
0
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
06.03.2020, 20:10
Цитата Сообщение от koks_ikkkk Посмотреть сообщение
Как сделать так, если я передумал и выбрал другой файл вместо своего первого выбора, Filereader обновился. Потому что он запоминает первый выбор
У меня прекрасно обновляется при перевыборе, у вас видно путается в этой куче if else, попробуйте начать с моего примера и добавлять условия
1
0 / 0 / 1
Регистрация: 12.03.2018
Сообщений: 331
06.03.2020, 22:19  [ТС]
Сомневаюсь что проблема в них, потому что если я выбираю изображения с неправильным разрешением, то выводится
$("#poster_error_message").html("Ширина: 246, Высота:328"); и потом если в этом же сеансе(без обновления страницы) выберу файл с правильным разрешением, то это сообщение не скрывается...

Добавлено через 14 минут
const inp = document.querySelector('.inp') - что вместо inp должно быть?
0
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
06.03.2020, 22:46
Цитата Сообщение от koks_ikkkk Посмотреть сообщение
Сомневаюсь что проблема в них, потому что если я выбираю изображения с неправильным разрешением, то выводится
$("#poster_error_message").html("Ширина: 246, Высота:328"); и потом если в этом же сеансе(без обновления страницы) выберу файл с правильным разрешением, то это сообщение не скрывается...
Так его скрыть надо, оно само собой не исчезнет

Цитата Сообщение от koks_ikkkk Посмотреть сообщение
const inp = document.querySelector('.inp') - что вместо inp должно быть?
Вместо inp нужно вставить класс назначенный форме
1
0 / 0 / 1
Регистрация: 12.03.2018
Сообщений: 331
06.03.2020, 22:56  [ТС]
В данной ситуации это должна делать 45 строчка моего кода. Но проверка думает, что там тот же файл...
0
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
06.03.2020, 23:00
Цитата Сообщение от koks_ikkkk Посмотреть сообщение
это должна делать 45 строчка моего кода
В строке 45 указан элемент с id name_product_error_message, а надпись добавляется к элементу с id poster_error_message, в каком отношении находятся эти два элемента
1
0 / 0 / 1
Регистрация: 12.03.2018
Сообщений: 331
06.03.2020, 23:22  [ТС]
это просто...... аааа Спасибо. Я обращался не к тому элементу.... Как я не замтеил.... из-за этого столько времени убил... боже.. Как можно отлавливать подобные ошибки?!
0
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
06.03.2020, 23:43
Цитата Сообщение от koks_ikkkk Посмотреть сообщение
Как можно отлавливать подобные ошибки?!
Со временем привыкаешь следить за этим
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.03.2020, 23:43
Помогаю со студенческими работами здесь

Разрешение изображения всегда остается 672x380, хотя камера настроена на большее разрешение
Сохраняю картинку, но ее разрешение всегда остается 672x380, хотя камера настроена на большее разрешение. procedure...

Максимальное разрешение и качество от возможного у вебкамеры при сохранении изображения
Нужно написать приложение, которое будет показывать видеопоток с вебкамеры и делать скриншоты при нажатии кнопки. Использую Qcamera для...

Ошибка при загрузке изображения в БД
Добрый день! Имеется база в MSAccess. При нажатии на кнопку открывается диалог выбора файла, выбираю jpeg, а программа выдает...

Ошибка при загрузке изображения
Здравствуйте! Пытаюсь нарисовать изображение: try { BufferedImage img = ImageIO.read(new File(&quot;logotip.jpg&quot;));...

Ошибка при загрузке изображения
Вот код моего окна: class menuWindow: def __init__(self): self.windowWidth = 1288 self.windowHeight = 720 ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru