日期:2014-05-17  浏览次数:20819 次

IE8浏览器下面上传图片,怎样得到图片的宽高,问题解决结贴给分。
<input type="file" name="upload"onchange="checkPicSize(this);"/>

function checkPicSize(obj){
var img = new Image();
img.src = obj.value;
alert(img.width);
alert(img.height);
}
通过这种方式是不可以的,得到的都是0 。该怎么解决,
问题解决结贴给分。
------解决方案--------------------
<input type="file" id=m onpropertychange="document.all.a.src=this.value;alert(document.all.a.width+':'+document.all.a.height)">
<img id=a style="visibility:hidden">
------解决方案--------------------
用控件会好一些,js操作文件不靠谱
------解决方案--------------------
你确定能获取到真实路径吗?ie8下出于安全性考虑,上传文件时屏蔽了真实的本地文件路径,而以“C:\fakepath\”取代之。你可能没有真正得到这个图片,后面的解析也就无用了。
------解决方案--------------------
引用:
Quote: 引用:

<input type="file" id=m onpropertychange="document.all.a.src=this.value;alert(document.all.a.width+':'+document.all.a.height)">
<img id=a style="visibility:hidden">


经测试 不管是什么图片都是28:30 


不会吧。。。
那你就在后台获取吧,Width.ToString(),Height.ToString()。
------解决方案--------------------
图片未取到,上传后,后台可以取。要么前面加载到。
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">
</script>
</head>
<body>
<input type="file" name="upload"onchange="checkPicSize(this);"/>
<img src="http://www.baidu.com/img/bdlogo.gif" />
<script>
$(document).ready(function(){
   var e=$("img");
   alert("width:" + e.width() + "  height:" + e.height());

});


function checkPicSize(obj){
 
var img = new Image();
img.src = $("img")[0].src;
alert("------->width:" + img.width+ "  height:" + img.height);
 
 
}
</script>

 
</body>
</html>

------解决方案--------------------
引用:
Quote: 引用:

你确定能获取到真实路径吗?ie8下出于安全性考虑,上传文件时屏蔽了真实的本地文件路径,而以“C:\fakepath\”取代之。你可能没有真正得到这个图片,后面的解析也就无用了。


我能打印出图片的路径 是桌面的一个图片文件,不会错,还有其他的方式吗? 真的腻了,这类问题。

ie8下出于安全考虑,可能禁止你获取本地图片信息。要不你可以通过伪ajax把文件上传到服务器,然后同ajax改变image的src来加载这张图片,然后得到图片的信息!