JavaScript獲取遠程圖片的尺寸和大小

encn 9年前發布 | 3K 次閱讀 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;

 本文由用戶 encn 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!