JS获取图片大小时错误
<scriptlanguage="JavaScript"type="text/javascript"><!--functioncheckImgSize(){varfile...
<script language="JavaScript" type="text/javascript">
<!--
function checkImgSize(){
var file = document.getElementById("img");
if(file.value != ""){
//检测类型
var val = file.value;
if(/^.*?\.(gif|jpg|jpeg|bmp|GIF|JPG|JPEG|BMP)$/.test(val)){
}else{
alert("只能上传gif, jpg, bmp格式的图片");
return false;
}
var imgSize = 1024 * 200; //最大200K
var img = new Image();
img.onreadystatechange = function(){
if(img.readyState == "complete"){
fileSize=Math.round(img.fileSize / 1024,2) + 1
if(img.fileSize > imgSize){
alert("当前文件大小" + fileSize + "KB,图片太大!");
}else{
alert("当前文件大小" + fileSize + "KB");
return true;
}
}
}
img.src = val;
}else{
alert("请选择上传的文件!");
return false;
}
}
// -->
</script>
<table border="0" width="95%" cellspacing="0" cellpadding="0" align="center">
<form name="addform" enctype="multipart/form-data" method="post" action="save.asp" onSubmit="return checkImgSize()">
<tr>
<td height="25" width="94">图片地址</td>
<td><input type="file" name="sf_upfile" id="img" size="19"> <input type="submit" value="上 传" name="submit"></td>
</tr>
</form>
</table>
当提交后,如果图片为空或不是图片会有提示,但在检测大小的时候就是不谈出错误提示.
不想用ASP,img.fileSize应该能取的到值
怎么改?? 展开
<!--
function checkImgSize(){
var file = document.getElementById("img");
if(file.value != ""){
//检测类型
var val = file.value;
if(/^.*?\.(gif|jpg|jpeg|bmp|GIF|JPG|JPEG|BMP)$/.test(val)){
}else{
alert("只能上传gif, jpg, bmp格式的图片");
return false;
}
var imgSize = 1024 * 200; //最大200K
var img = new Image();
img.onreadystatechange = function(){
if(img.readyState == "complete"){
fileSize=Math.round(img.fileSize / 1024,2) + 1
if(img.fileSize > imgSize){
alert("当前文件大小" + fileSize + "KB,图片太大!");
}else{
alert("当前文件大小" + fileSize + "KB");
return true;
}
}
}
img.src = val;
}else{
alert("请选择上传的文件!");
return false;
}
}
// -->
</script>
<table border="0" width="95%" cellspacing="0" cellpadding="0" align="center">
<form name="addform" enctype="multipart/form-data" method="post" action="save.asp" onSubmit="return checkImgSize()">
<tr>
<td height="25" width="94">图片地址</td>
<td><input type="file" name="sf_upfile" id="img" size="19"> <input type="submit" value="上 传" name="submit"></td>
</tr>
</form>
</table>
当提交后,如果图片为空或不是图片会有提示,但在检测大小的时候就是不谈出错误提示.
不想用ASP,img.fileSize应该能取的到值
怎么改?? 展开
5个回答
展开全部
代码修改如下:
<script language="JavaScript" type="text/javascript">
<!--
function checkImgSize(){
var file = document.getElementById("img");
if(file.value != ""){
//检测类型
var val = file.value;
if(/^.*?\.(gif|jpg|jpeg|bmp|GIF|JPG|JPEG|BMP)$/.test(val)){
}else{
alert("只能上传gif, jpg, bmp格式的图片");
return false;
}
var imgSize = 1024 * 200; //最大200K
var img = new Image();
img.onreadystatechange = function(){
if(img.readyState == "complete"){
var fso=new ActiveXObject("Scripting.FileSystemObject");
var fileSize=fso.GetFile(val).Size;
if(fileSize > imgSize){
alert("当前文件大小" + fileSize + "KB,图片太大!");
}else{
alert("当前文件大小" + fileSize + "KB");
return true;
}
}
}
img.src = val;
}else{
alert("请选择上传的文件!");
return false;
}
}
// -->
</script>
<table border="0" width="95%" cellspacing="0" cellpadding="0" align="center">
<form name="addform" enctype="multipart/form-data" method="post" action="save.asp" onSubmit="return checkImgSize()">
<tr>
<td height="25" width="94">图片地址</td>
<td><input type="file" name="sf_upfile" id="img" size="19"> <input type="submit" value="上 传" name="submit"></td>
</tr>
</form>
</table>
<script language="JavaScript" type="text/javascript">
<!--
function checkImgSize(){
var file = document.getElementById("img");
if(file.value != ""){
//检测类型
var val = file.value;
if(/^.*?\.(gif|jpg|jpeg|bmp|GIF|JPG|JPEG|BMP)$/.test(val)){
}else{
alert("只能上传gif, jpg, bmp格式的图片");
return false;
}
var imgSize = 1024 * 200; //最大200K
var img = new Image();
img.onreadystatechange = function(){
if(img.readyState == "complete"){
var fso=new ActiveXObject("Scripting.FileSystemObject");
var fileSize=fso.GetFile(val).Size;
if(fileSize > imgSize){
alert("当前文件大小" + fileSize + "KB,图片太大!");
}else{
alert("当前文件大小" + fileSize + "KB");
return true;
}
}
}
img.src = val;
}else{
alert("请选择上传的文件!");
return false;
}
}
// -->
</script>
<table border="0" width="95%" cellspacing="0" cellpadding="0" align="center">
<form name="addform" enctype="multipart/form-data" method="post" action="save.asp" onSubmit="return checkImgSize()">
<tr>
<td height="25" width="94">图片地址</td>
<td><input type="file" name="sf_upfile" id="img" size="19"> <input type="submit" value="上 传" name="submit"></td>
</tr>
</form>
</table>
展开全部
img.onreadystatechange = function(){
if(img.readyState == "complete"){ //貌似 这句的条件判断 根本不成立
fileSize=Math.round(img.fileSize / 1024,2) + 1
if(img.fileSize > imgSize){
alert("当前文件大小" + fileSize + "KB,图片太大!");
}else
{alert("当前文件大小" + fileSize + "KB");
return true;}
}
}
if(img.readyState == "complete"){ //貌似 这句的条件判断 根本不成立
fileSize=Math.round(img.fileSize / 1024,2) + 1
if(img.fileSize > imgSize){
alert("当前文件大小" + fileSize + "KB,图片太大!");
}else
{alert("当前文件大小" + fileSize + "KB");
return true;}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if(img.fileSize > imgSize){
alert("当前文件大小" + fileSize + "KB,图片太大!");
}else{
alert("当前文件大小" + fileSize + "KB");
return true;
其中img.fileSize确定可以取到值吗?
alert("当前文件大小" + fileSize + "KB,图片太大!");
}else{
alert("当前文件大小" + fileSize + "KB");
return true;
其中img.fileSize确定可以取到值吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不用fso,对于img.fileSize能取到值深表怀疑,可能是俺无知了,反正用了这么多年js,就没见用js获取文件大小的(即便用了fso,可以获取,对于安全也是致命的)。想不明白,楼主这么执着的不用程序语言判断,而用js,是基于怎样的思考。js最早也无非就是用来校验的语言,ajax的出现让它大放光彩,但并不代表他是万能的。至少对于数据流这块。还是用程序语言吧。
选对方向才是最主要的
选对方向才是最主要的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
为什么不用ASP呢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询