JavaScript:
$('#fileID').on('change',function(){ }
var imageName = '';
if (this.files && this.files.length > 0) {
imageName = this.files[0].name;
}
else if (this.value) {
imageName = this.value;
}
if (window.FileReader) {
//as same as other samples
}
else{
var image = document.getElementById('imgItem');
image.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale', src='" + imageName + "')";
image.src = 'data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==';
}
//code end
我发现这在 emulation-IE9 中效果很好。
另一种绘制图像的方法:
var canvas = document.getElementById('imgArea');
var img = new Image();
img.src = imageName;
img.onload = function () {
var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0, 200, 200);
}
注意:添加 2017/12/27
使用 IE-9 预览本地图像的一种解决方案:
IE-9 不支持 FileReader,所以我尝试先上传它,然后将 imageName(带服务器路径)返回给 View 以更改 img 的 'src' 属性。
而且效果很好。
要点:(示例是使用MVC)
1.在input-type-file的'change'事件中,做ajaxSubmit(action method:void)
2.在Controller中,使用[Newtonsoft.Json.JsonConvert.SerializeObject],返回json格式的字符串。
Response.Write(strData);
3.在ajaxSubmit的回调中,只需更改img的src即可。
(不要忘记将结果转换为 json)