Javascript 从IE中的输入类型=文件获取单个文件
我理解IE9及以下版本不支持多文件输入的文件上传。 但我甚至无法在一次文件上传中抓取文件 HTML: 我知道FileReaderAPI在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
我应该提到,我正在使用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 */
}