在jquery, ie8中获取图像文件's大小和尺寸错误

error in Getting image file's size and dimensions in jquery, ie8

本文关键字:错误 ie8 jquery 获取 文件 图像      更新时间:2023-09-26

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

HTML代码:
<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'是空的或者不是对象

在firefox中可以正常工作。我怎样才能使它在ie中工作??

这不起作用,因为IE8不支持HTML5文件API,这段代码正在使用。

如果你需要支持它,有一些polyfill脚本可以帮助你通过添加缺失的功能(或它的一部分)到旧的浏览器——试着阅读Modernizr Polyfills列表页面,找到File API部分。

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

希望对你有帮助。