在jquery中获取图像文件的大小和尺寸时出错,ie8

时间:2013-03-26 10:15:04

标签: javascript jquery image file-upload internet-explorer-8

我有一个文件控件,通过使用文件控件选择图像,我需要获取图像的大小和尺寸。

HTML code:

<input type="file"  id="button_background_image_control"  />

JQuery代码:

$('#button_background_image_control').bind('change', function () 
    {             
        if (this.disabled) 
        {
            alert('Your browser does not support File upload.');
        } else 
        {
            var chosen = this.files[0];
            var image = new Image();
            image.onload = function () 
            {
                alert('Width:' + this.width + ' Height:' + this.height + ' ' + Math.round(chosen.size / 1024) + 'KB');
            }; 
            image.src = url.createObjectURL(chosen);
        }
    });

在ie8中运行上面的代码时出现错误:0x800a138f - Microsoft JScript运行时错误:'this.files.0'为null或不是对象

在Firefox中它运行正常。我怎样才能使它在ie ???

1 个答案:

答案 0 :(得分:1)

这不起作用,因为IE8不支持此代码使用的HTML5文件API。

如果您需要支持它,有一些polyfill脚本可以通过向旧浏览器添加缺少的功能(或部分功能)来帮助您 - 尝试阅读Modernizr Polyfills list页面并找到文件API 部分。

有几个脚本声称可以帮助处理旧浏览器中的文件,但是你需要自己尝试一下,看看哪一个最适合你的需求。

希望有所帮助。