javascript:在IE9中获取输入字段(type = file)的base64

时间:2013-12-15 19:19:31

标签: javascript internet-explorer-9 base64

我需要上传图片,就像这样

<form>
    <input type="file">
</form>

但是,我想在上传之前裁剪/调整文件大小。裁剪和调整大小没问题,但如何从输入文件元素中获取base64?在IE10和其他浏览器中,我可以这样:

if (this.files.length === 0) {
    return;
}

var file = this.files[0];

if (file.type.match(/image.*/)) {
    var reader = new FileReader();
    reader.onload = function (event) {
        cropAndResize(event.target.result);
    };
    reader.readAsDataURL(file);
}

但是,在IE9中 this.files 未定义。如何在IE9中访问上传图像的base64(当然没有到后端的往返!)? Here is a jsfiddle

1 个答案:

答案 0 :(得分:0)

IE9不支持FileReader API,因此无法使用纯JavaScript执行您想要的操作。如果您需要IE9支持,那么您需要使用类似this Flash solution的内容才能获得相同的结果。