Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查图像大小Jquery_Jquery - Fatal编程技术网

检查图像大小Jquery

检查图像大小Jquery,jquery,Jquery,只是在胡思乱想去学。我正在尝试验证上传的图像。使用下面的代码检查图像类型可以正常工作。但是我正在检查它的尺寸。有人能解释一下为什么这不起作用吗 谢谢 $('#File').change(function (evt) { var f = evt.target.files[0]; var reader = new FileReader(); var H = f.height; var W = f.

只是在胡思乱想去学。我正在尝试验证上传的图像。使用下面的代码检查图像类型可以正常工作。但是我正在检查它的尺寸。有人能解释一下为什么这不起作用吗

谢谢

  $('#File').change(function (evt) {
            var f = evt.target.files[0];
            var reader = new FileReader();


            var H = f.height;
            var W = f.width;

            if (W > 100) {
                alert("The selected file is too large.");
                return;
            }


            if (!f.type.match('image.*')) {
                alert("The selected file does not appear to be an image.");
                return;
            }

            setBox('#IsFile');
            reader.onload = function (e) { preview.attr('src', e.target.result); };
            reader.readAsDataURL(f);
        });

解决方法是将图像加载到屏幕外的图像元素中,然后使用类似以下方法检测宽度/高度:

var img = document.getElementById('offscreenImageId'); 
//or however you get a handle to the IMG
var width = img.clientWidth;
var height = img.clientHeight;

它不起作用,因为API不支持它。换句话说,“高度”和“宽度”属性将始终是未定义的。(至少在我的浏览器中是这样。)谢谢你的回复。那么,不可能在jquery中检查图像大小吗?当然,你可以这样做,但你必须先读取文件内容,然后解码图像格式,以便用自己的代码提取这些信息。我想你可以将其加载到一个隐藏的元素中,然后执行以下操作:是的,这比我愚蠢的想法要容易得多:)