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
我觉得这是行之有效的仿真,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 does`nt支持FileReader,所以我试图先上传它,然后将imageName(带有服务器路径)返回到View以更改img的'src'属性。 它运作良好。
点数:(该示例是使用MVC)
1.In输入型文件的 '改变' 事件,执行ajaxSubmit会(操作方法:无效)
2.In的控制器使用[Newtonsoft.Json.JsonConvert.SerializeObject]返回json格式的字符串。
Response.Write(strData);
3.在ajaxSubmit的回调中,只需更改img的src即可。 (不要忘记将结果转换为json)