Sửa:
Để có được hiện tại trong trình duyệt kích thước pixel của một phần tử DOM (trong trường hợp các yếu tố IMG của bạn) không bao gồm biên giới và lợi nhuận, bạn có thể sử dụng clientWidth và clientHeight tài sản.
var img = document.getElementById('imageId');
var width = img.clientWidth;
var height = img.clientHeight;
Bây giờ để có được kích thước tập tin, bây giờ tôi chỉ có thể nghĩ về fileSize property rằng Internet Explorer lộ cho tài liệu và các yếu tố IMG ...
Chỉnh sửa 2: Something nói đến cái tâm của tôi ..
Để nhận kích thước của tệp được lưu trữ trên máy chủ, bạn có thể chỉ cần thực hiện HEAD HTTP Request bằng Ajax. Loại yêu cầu này được sử dụng để thu được thông tin về url được ngụ ý bởi yêu cầu mà không chuyển bất kỳ nội dung nào của nó trong phản hồi.
Khi kết thúc Yêu cầu HTTP, chúng tôi có quyền truy cập vào tiêu đề HTTP phản hồi, bao gồm Content-Length đại diện cho kích thước của tệp theo byte.
Một ví dụ cơ bản sử dụng nguyên XHR:
var xhr = new XMLHttpRequest();
xhr.open('HEAD', 'img/test.jpg', true);
xhr.onreadystatechange = function(){
if (xhr.readyState == 4) {
if (xhr.status == 200) {
alert('Size in bytes: ' + xhr.getResponseHeader('Content-Length'));
} else {
alert('ERROR');
}
}
};
xhr.send(null);
Lưu ý: Hãy nhớ rằng khi bạn làm yêu cầu Ajax, bạn bị hạn chế bởi các Same origin policy, cho phép bạn thực hiện các yêu cầu chỉ trong cùng một tên miền .
Kiểm tra bằng chứng làm việc về khái niệm here.
Sửa 3:
1.) Về Content-Length, tôi nghĩ rằng sự không phù hợp kích thước có thể xảy ra ví dụ nếu phản ứng máy chủ được gzip, bạn có thể làm một số xét nghiệm để xem nếu điều này xảy ra trên máy chủ của bạn.
2.) Đối với có được kích thước ban đầu của một hình ảnh, bạn có thể tạo ra một yếu tố IMG lập trình, ví dụ:
var img = document.createElement('img');
img.onload = function() { alert(img.width + ' x ' + img.height); };
img.src='http://sstatic.net/so/img/logo.png';
Lưu ý rằng ba câu trả lời đầu tiên về viết không chính xác mà tôi đã bắt đầu (nơi tôi đã nói là tôi đang nói về tải lên hình ảnh). Lời xin lỗi của tôi đối với những người đó. – scottru