[英]Grab SINGLE file from input type=file in IE
我了解IE9及以下版本不支持文件上传多个文件的输入。 但我甚至无法在单个文件上传中获取文件!
<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 */
}
我知道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.