【发布时间】:2015-01-04 00:49:00
【问题描述】:
我正在开发一个 JSF 网络项目,该项目使用 h:inputFile 工具上传文件。我将 h:inputFile 的值绑定到支持 bean 属性输入 javax.servelt.http.Part
<h:inputFile id="inputfile" validator="#{bean.validateFile}" value="#{bean.part}"/>
我还在同一个支持 bean 中使用以下文件验证策略:
public void validateFile(FacesContext con, UIComponent comp, Object value) {
Part p = (Part) value;
List<FacesMessage> list = new ArrayList<>();
if (p.getSize() == 0) {
list.add(new FacesMessage("File Size too small"));
}
if (p.getSize()>MAXSIZE) {
list.add(new FacesMessage("File Size too Big"));
}
if (!list.isEmpty()) {
throw new ValidatorException(list);
}
}
我的问题: 使用 Part 接口是否会导致整个文件上传到服务器端,THEN 它会在提交表单时得到验证(即其大小)?
当我在本地主机(Glass fish v.4)中体验它时,我在 Chrome 浏览器的左角看到一条消息,指示文件上传进度,之后如果文件验证错误,我会得到验证消息。我担心在实际情况下(例如互联网连接速度慢),上传文件后发送大小验证错误是一种非常不方便的方式!
请帮助我,如果是我认为的情况,请发送替代解决方案。
提前致谢!
【问题讨论】:
标签: java validation jsf jsf-2