请教关于客户端验证上传图片大小的问题

我在服务器端也写了验证代码,可是只能返回一个错误提示,这样就破坏了原来的CSS格式,我还不太了解CSS

现在我想请教下,如何在客户端利用JS写一个代码验证上传图片的尺寸和大小,并对不符合要求的弹出警告,另外我看了下网上这方便的内容,都不太符合,而且我这个不需要预览(有个帖子说防止图片太大filesize返回-1,需要预览,不太懂),请大家帮忙,最后又代码样例可以参考,谢谢

或者怎么利用SERVER端验证,然后在客户端弹出警告也行,不会写这样的代码,总之不要破坏原来的CSS就行

下面是我的JSP,无法验证大小,不知道为啥

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@taglib prefix="s" uri="/struts-tags"%>

function checkFile() { var upload = document.getElementById("upload"); var value = upload.value; if(value == "") { alert("请先选择图片文件!"); return false; } var fso = new ActiveXObject('Scripting.FileSystemObject'); var file = fso.GetFile(upload); window.onerror = window.oldOnError; alert(file.Size); var contentType = value.substr(value.lastIndexOf(".")).toLowerCase(); if (contentType == ".jpg") { img = document.createElement("img"); img.style.position = "absolute"; img.style.visibility = "hidden"; img.src = upload; if (upload.fileSize > 204800) { alert("图片尺寸请不要大于200KB"); return false; } else return true; } else { alert("只能上传jpg格式的图片"); return false; } return true; }




Upload JPG




选择图片:





[b]问题补充:[/b]
那可以不看代码,直接解决问题就好了
[b]问题补充:[/b]
大家帮帮我啊

3个回答

在浏览器中用JS来直接访问上传的文件是不可以的。我看你在代码中用了IE的ActiveX控件,如果你的应用只兼容IE,我觉得用ActiveX也没什么不可以。貌似IE7和8会弹出警告吧。

我对ActiveX控件不熟悉,所以也不知道为什么你的代码不工作。

不过关于图片大小验证,我建议你使用服务端验证的方式。基本思路就是用iframe把上传的文件POST到服务端,服务器端拿到文件内容之后,就可以判断大小了,然后返回相应的消息代码,浏览器端就可以使用了。

你所谓的破坏CSS,我不是很明白。

...没看懂

你的需求是?描述清楚点

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!