#javascript #jquery
#javascript #jquery
Вопрос:
Используя этот код, я пытаюсь загружать ТОЛЬКО изображения с размером 512X512
и отменять ввод файла при выборе любых других размеров, но я всегда получаю not a valid size of 512X512
, хотя выбираю правильный размер изображения 512X512
Я работаю над приведенным ниже кодом и ищу, как это исправить. По сути, я хочу отменить / отключить / выгрузить изображение, размер которого не является точным 512X512
, и очистить ввод файла
var _URL = window.URL || window.webkitURL;
$("#file").change(function(e) {
var file, img;
if ((file = this.files[0])) {
img = new Image();
img.onload = function() {
//alert(this.width " " this.height);
};
img.onerror = function() {
alert("not a valid file: " file.type);
};
img.src = _URL.createObjectURL(file);
// if (this.width != 512 amp;amp; this.height != 512) {
if (this.width != 512 || this.height != 512) {
$("#file").val('');
alert("not a valid size of 512X512");
}
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="file" id="file" />
Комментарии:
1. переместите
if (this.width...
его в туimg.onload
часть,this
где вы называете его не изображением, а вместо$("#file")
Ответ №1:
Вы должны переместить этот раздел:
if (this.width != 512 || this.height != 512) {
$("#file").val('');
alert("not a valid size of 512X512");
}
в image.onload
функциональный блок.
вот один из примеров: http://jsfiddle.net/4N6D9/1 /