Javascript 从IE中的输入类型=文件获取单个文件

Javascript 从IE中的输入类型=文件获取单个文件,javascript,internet-explorer,file-upload,Javascript,Internet Explorer,File Upload,我理解IE9及以下版本不支持多文件输入的文件上传。 但我甚至无法在一次文件上传中抓取文件 HTML: 我知道FileReaderAPI在IE中不起作用,那么会怎样呢?一定有解决办法。我在这上面花了一段时间,但它一直在逃避我 编辑 我应该提到,我正在使用ajax。因此,上面的javascript是在使用PHP上传上传的文件后触发的。这是否意味着我们甚至不能在IE中使用ajax?input.files是HTML5的一个属性,很可能在您测试它的任何浏览器中都可以使用 您是否尝试过input.value

我理解IE9及以下版本不支持多文件输入的文件上传。 但我甚至无法在一次文件上传中抓取文件

HTML: 我知道FileReaderAPI在IE中不起作用,那么会怎样呢?一定有解决办法。我在这上面花了一段时间,但它一直在逃避我

编辑
我应该提到,我正在使用ajax。因此,上面的javascript是在使用PHP上传上传的文件后触发的。这是否意味着我们甚至不能在IE中使用ajax?

input.files
是HTML5的一个属性,很可能在您测试它的任何浏览器中都可以使用


您是否尝试过
input.value

您无法使用IE使用javascript上载所选文件。要将此文件发送到服务器,您需要提交表单,并在表单中上载文件(传统的好方法)

最近的浏览器支持Ajax文件上传(Chrome、Firefox和Opera)。为此,您需要XHR2。IE9不支持它,但IE10应该:


但是我不明白javascript是如何从服务器上取回文件的。如果您想使用Ajax,您应该从Ajax请求输出读取文件,而不是从fileupload组件读取文件。

出于好奇,您是否在任何代码中的任何位置使用
var
?我使用了。这有什么影响吗?
<input type='file' id='imgfile' />
var input = document.getElementById("imgfile");
input.addEventListener("change", function (evt) {
file = this.files[0]; /** Is it possible to even just do this much in IE? **/

            if (!!file.type.match(/image.*/)) {
                if ( window.FileReader ) {
                    reader = new FileReader();
                    reader.onloadend = function (e) { 
                        showUploadedItem(e.target.result, file.fileName);
                    };
                    reader.readAsDataURL(file);
                }
                if (formdata) {
                    formdata.append("images[]", file);
                }
            }
                   /* some stuf */
}