系统之前使用的是良田高拍仪,拍照之后通过img标签显示客户端本地图片,可以正常显示。现在换了一套新的高拍仪设备,同样的方式图片不显示,变成了黑叉,必须点击黑叉鼠标右键显示图片才正常显示,有大佬知道是为什么么?PS.都是用的ie浏览器
经过各种尝试之后,先转成base64,然后通过setTimeout显示,可以正常显示了。
setTimeout(function(){
var base64 = getBase64Image(copyP);
var j_cav_base64 = document.getElementById("img"+targetImaged.length);
j_cav_base64.src=base64;
},1000);
function pathToBase64(file) {
try {
var type = file.slice(file.lastIndexOf(".") + 1)
var xmlHttp = new ActiveXObject('MSXML2.XMLHTTP.6.0');// 要用MSXML2.XMLHTTP.6.0,不要用MSXML2.XMLHTTP(会报错"没有权限")
xmlHttp.open('POST', file, false);
xmlHttp.send('');
var xml_dom = new ActiveXObject('MSXML2.DOMDocument');
var tmpNode = xml_dom.createElement('tmpNode');
tmpNode.dataType = 'bin.base64';
tmpNode.nodeTypedValue = xmlHttp.responseBody;
var fileBase = "";
switch (type) {
case "pdf":
fileBase = "data:application/pdf;base64,";
break;
case "jpg":
fileBase = "data:image/jpg;base64,";
break;
case "png":
fileBase = "data:image/png;base64,";
break;
case "bmp":
fileBase = "data:image/bmp;base64,";
break;
}
var imgBase64Data = fileBase + tmpNode.text.replace(/\n/g, "");
return imgBase64Data;
} catch (e) {
console.log("pathToBase64 error:", JSON.stringify(e));
return false;
}
}