客户端文件大小验证javascript
client side file size validation javascript
每当我选择一个大小超过50MB的文件上传时,我的JBoss服务器就会抛出一个异常,JSP就会挂起。因此,我必须在客户端验证文件大小,而不是在java服务器端验证文件大小。但我找不到任何合适的方法。有人能帮我吗?我不能使用任何flash上传功能。
您不希望对此使用客户端验证。JS不仅不能访问文件元数据,而且JS还可以被关闭甚至完全伪造。
至于具体的问题,听起来就像是在JSP文件中解析上传的文件,而不是在普通的Java(Servlet)类中。由于JSP是HTTP响应的视图技术部分,任何在JSP输出中途抛出的异常,服务器都不能再将HTTP响应更改为错误页面。由于JSP输出突然中止,客户端很可能最终会得到一个带有半成品HTML源代码的空白页面。
要解决这个问题,您应该避免在JSP文件中使用Java代码,而是将Java代码放在普通的Java类中。在这种特殊情况下,您希望使用servlet。让表单提交到servlet而不是JSP。
<form action="uploadServlet" method="post">
以下是其doPost()
方法的启动示例:
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
// Parse file upload.
// At end, forward request/response to JSP to present results in HTML.
request.getRequestDispatcher("/WEB-INF/results.jsp").forward(request, response);
} catch (FileUploadException e) { // Or whatever exception it is throwing.
throw new ServletException("File upload failed", e);
}
}
这样,异常将在默认的HTTP 500错误页面中结束,您可以在web.xml
中自定义如下
<error-page>
<exception-type>com.something.FileUploadException</exception-type>
<location>/someFileUploadErrorPage.jsp</location>
</error-page>
或者,您也可以不抛出ServletException
,而是将错误消息设置为属性并转发到同一JSP,让它以用户友好的方式以相同的形式显示错误。
相关文章:
- Javascript验证问题
- javascript验证和ajax调用同时不起作用
- 外部JavaScript验证不起作用
- JAVASCRIPT验证表单中的日期
- javascript验证编号未检测到空表单字段
- 通过Javascript验证PHP变量
- Javascript验证(gen_validatorv4.js)-基于复选框结果
- 基于lur的Javascript验证
- 想要使用 JavaScript 验证用户名和密码
- 使用javascript验证Ajax组合框
- 使用javascript验证电话号码无效
- 计算器的Javascript验证
- 时间字段上的JavaScript验证(不接受0:00格式)
- 如何使用javascript验证表单中的数据,然后调用php页面
- 使用JavaScript验证用户交互/输入-这是一种很好的方法
- Javascript验证:页面仍在提交
- 如何使用JavaScript验证下拉菜单
- 使用javascript验证只有一个特殊字符的字符串
- 编辑图像字段javascript验证空白图像不插入
- asp.net mvc中的javascript验证不适用于登录表单