繁体   English   中英

从IE中的输入类型=文件中获取SINGLE文件

[英]Grab SINGLE file from input type=file in IE

我了解IE9及以下版本不支持文件上传多个文件的输入。 但我甚至无法在单个文件上传中获取文件!

HTML:

<input type='file' id='imgfile' />

使用Javascript:

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 */
}

我知道FileReader API在IE中不起作用,那会是什么? 必须有一些解决方案。 我已经花了一段时间在这上面,但它正在逃避我!

编辑

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

input.files是一个HTML5属性,很可能在你正在测试它的任何浏览器中都不支持它。

你试过input.value吗?

您无法使用IE使用javascript上传所选文件。 要将此文件发送到服务器,您需要提交包含文件上载的表单(旧的方式)。

最近的浏览器支持Ajax文件上传(Chrome,Firefox和Opera)。 为此,您将需要XHR2。 IE9不支持它,但IE10应该: http//caniuse.com/#feat=xhr2

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM