如何让jQuery以字节为单位获取图像大小,而不是图像尺寸?

时间:2012-02-12 22:20:26

标签: jquery

我正在使用jQuery 1.7.1。

在浏览器窗口中加载图像后,我想检索其总字节大小。是否有对象名称/值?

5 个答案:

答案 0 :(得分:2)

**这里是用于获取图像大小和类型并使用验证的jQuery代码**您可以在jQuery文件中的函数内使用此代码

if (window.File && window.FileReader && window.FileList && window.Blob)
{
   var pic_size = $('#profile_pic')[0].files[0].size;//get file size 
   var pic_type = $('#profile_pic')[0].files[0].type;

   var extension = pic_type.split('/').pop().toUpperCase();

    if (extension!="PNG" && extension!="JPG" && extension!="GIF" && extension!="JPEG" || pic_size>=2048000)
    {
        alert ("Please Select PNG,JPG,GIF,JPEG Image Only and File Size not Greater than 2MB");
        $( "#profile_pic" ).focus()
        return false;
    }
 }

答案 1 :(得分:1)

不,你无法使用jQuery或纯JavaScript获取图像大小。唯一的方法是使用ajax从服务器端获取它。

您可以将图片网址发送到服务或服务器端页面,让页面或服务返回图片大小。

答案 2 :(得分:0)

我不认为这是可能的。您可能需要一种服务器端语言。

答案 3 :(得分:0)

尝试这个有javascript代码

$("#file_id")[0].files[0].size

答案 4 :(得分:0)

您可以通过以下方式获取文件大小

$("#selector")[0].files[0].size

而且您也可以通过以下方式获取文件格式

$("#selector")[0].files[0].type

此外,如果您想要验证,例如文件大小不超过2 MB,则可以尝试

var mS_totalBytes = this.files[0].size;
var mS_size = Math.floor(mS_totalBytes/1024000); // its on MB

根据您的要求使用if else else

var mS_totalBytes = this.files[0].size;
var _size = Math.floor(mS_totalBytes/1024000);   // in MB
//alert(mS_size);
if(mS_size >= 1){
    jQuery(".ExportAndroidAsset").prop('disabled', true);
    alert("MAximum File Size is 1MB");
    jQuery(".pxel_Bar").css("width","1%");
    jQuery(".pxel_Progress").hide();
    jQuery(".tab-pane .output label").show();
    jQuery('input[name=imagefile]').val('');
}
else{
    jQuery(".ExportAndroidAsset").prop('disabled', false);
    jQuery(".pxel_Progress").show();
    jQuery(".tab-pane .output label").hide();
}