IE9中的HTML5文件上传失败

时间:2013-02-28 23:46:04

标签: html5 file-upload internet-explorer-9

以下代码在Chrome中正常运行,但在IE9中失败 - 当我们检索选定文件时processFiles() e.target.files null

<!DOCTYPE html>
<html>
<header>
    <meta http-equiv="X-UA-Compatible" content="IE=8" />
</header>
<body>
    <input type="file" id="uploader"/>

    <script>        
        var uploader = document.getElementById ("uploader");
        if (uploader.addEventListener) {  // all browsers except IE before version 9
            uploader.addEventListener ("change", processFiles, false);
        }
        else {
            if (uploader.attachEvent) {   // IE before version 9
                uploader.attachEvent ("change", processFiles);
            }
        }       

        function processFiles(e)
        {

            var files = e.target.files || e.dataTransfer.files;

            for (var i = 0 ; i < files.length ; i ++)
            {
                window.console && console.log && console.log(files[i].name);
            }           
        }       
    </script>   
<body>

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您的代码假定支持File API。支持File API的IE的第一个版本是IE10。您的代码将永远不会像现在一样跨浏览器工作。

考虑使用已经跨浏览器处理上传的Fine Uploader并包含许多有用的功能。