上传文件选择图片获取大小的问题!!!

在其他浏览器中可以获取到files,然后拿到图片或文件尺寸,但是该死的ie里面不行,我要兼容到ie8,求助,咋整啊?

阅读 4.7k
7 个回答

让后端返回一个数据,前段再去读取,这样就很容易实现。

前后端代码?楼主难道搞的什么html5 的新特性吗

让后端去做?我之前的项目,后端是nodejs,获取图片大小直接用了一个Node的库,很简单,相信其他语言也有相应的包

感觉前端没办法兼容IE8,除非你用flash。要不然不兼容IE8,要不然让上传之后让后端返还给你信息。

HTML5 file不兼容IE8,让你们后端去检测,文件过大的话,前端提示用户即可。

推荐一个操作文件的插件包,支持所有浏览器 https://github.com/mailru/Fil...
FileAPI by Konstantin Lebedev (© Mail.ru Group)
Multiupload: all browsers that support HTML5 or Flash
Drag'n'Drop upload: files (HTML5) & directories (Chrome 21+)
Upload one file: all browsers
Working with Images: IE6+, FF 3.6+, Chrome 10+, Opera 11.1+, Safari 5.4+

试试这个函数

/**
 * 获取要上传的文件大小
 * 
 * @param element 需要配合jquery使用,$(上传文件的input)
 * @returns {*}
 */
function fileSize(element) {
    try {
        var fileSize = 0;
        // for IE
        if (window.ActiveXObject) {
            // before making an object of ActiveXObject,
            // please make sure ActiveX is enabled in your IE browser
            var objFSO = new ActiveXObject("Scripting.FileSystemObject");
            var filePath = element.get(0).value;
            var objFile = objFSO.getFile(filePath);
            fileSize = objFile.size; //size in kb
        }
        // for FF, Safari, Opeara and Others
        else {
            fileSize = element.get(0).files[0].size; //size in kb
        }

        //fileSize = fileSize / 1048576; //size in mb

        return fileSize;
    }
    catch (e) {
        return null;
    }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题