kisonlee 2009-08-22 14:39
浏览 297
已采纳

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

我在服务器端也写了验证代码,可是只能返回一个错误提示,这样就破坏了原来的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条回答 默认 最新

  • 成富 2009-08-23 12:44
    关注

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

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

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

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 android报错 brut.common.BrutException: could not exec (exit code = 1)
  • ¥15 nginx反向代理获取ip,java获取真实ip
  • ¥15 eda:门禁系统设计
  • ¥50 如何使用js去调用vscode-js-debugger的方法去调试网页
  • ¥15 376.1电表主站通信协议下发指令全被否认问题
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥15 复杂网络,变滞后传递熵,FDA
  • ¥20 csv格式数据集预处理及模型选择
  • ¥15 部分网页页面无法显示!
  • ¥15 怎样解决power bi 中设置管理聚合,详细信息表和详细信息列显示灰色,而不能选择相应的内容呢?