| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
encn
9年前发布

JavaScript获取远程图片的尺寸和大小

通过image.onload读取长度和宽度,通过ajax请求获取大小.

一直以来我都以为前端只能读取图片的宽度和高度,以及本地上传图片的大小(通过FileReader),但不能获取到远程图片的大小。

昨天在搜索时突然意识到,http headers中包含Content-Length参数,这不就是大小吗?!然后立马在console输入$.get(src, function(data, statusText, res){res.getAllResponseHeaders()}),这不就搞定了嘛!

但是我高兴太早了 把这个放在代码里,愣是不显示Content-Length

然后继续分析输出,嘿嘿,**data**不就是图片吗?其长度不就是图片原始大小吗?!

是的,事情就是这个样子的 代码如下:

var img = new Image();  img.onload = function() { // 先获取长度和宽度(像素)      $.ajax({ // 再获取图片大小(kb)          url: src,          type: 'GET',          processData: false,          complete: function(xhr, statusText) {               console.log(img.width, img.height, xhr.status === 200 ? (xhr.responseText.length/1024).toFixed(2) : 0);          }      });  };  img.src = src;