html5拖拽图片上传,怎么获得图片原始尺寸

fileList = e.dataTransfer.files;这句话得到的文件对象中没有图像的尺寸信息,但如果我想根据图像原始尺寸来定制防止图片的框的尺寸,该怎么办

拖拽的过程就不说了,这里主要说一下如何在前端获取到图片的相关信息。

html5里有一个fileReader的全局变量,用来读取本地文件,比如txt,img等,下面是一个简单的代码。

function checkFile(files){
var file = files[0];
var reader = new FileReader();
// show表示<div id='show'></div>,用来展示图片预览的
if(!/image\/\w+/.test(file.type)){
            show.innerHTML = "请确保文件为图像类型";
            return false;
        }
        // onload是异步操作
reader.onload = function(e){
show.innerHTML = '<img src="'+e.target.result+'" alt="img">';
}
reader.readAsDataURL(file);
}

这样就能够在不上传到服务器的前提下预览图片。当然,这个问题的重点是获取图片的原始尺寸,html5里还提供了两个变量来获取:naturalWidth和naturalHeight,这两个分别来获取图片的原始宽度和原始高度。


在上面的例子中,就能通过下面的方式获取到:

var width = e.target.naturalWidth;
var height = e.target.naturalHeight;



还有一种情况就是,如果已经存在页面里的图片,怎么获取到原始尺寸呢,可以这样:

var img = document.getElementsByTagName('img')[0]; // 获取到图片
var width = img.naturalWidth;
var height = img.naturalHeight;

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-27
用后台语言去获取不就可以了。为什么一定要在前端来获取图片原始大小呢?即使你要在前端实用,比如PHP获取到了以后还是可以通过变量传递给前端的。至于PHP怎么获取图片原始大小这个网上很容易找到资料!

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网