接缝:验证s:fileUpload



我有一个允许用户上传图像的JSF页面。我想对上传的文件执行一些验证,以确保它是正确的大小,尺寸,内容类型等。我创建了一个JSF验证器,并尝试在<s:fileUpload validator="XXX" />属性和<f:validator />标记中指定它。然而,无论我尝试什么,我的验证器都不会被调用。是否有任何方法来验证Seam中的文件上传?使用<rich:fileUpload />允许我对上传的文件进行验证吗?

经过多次尝试和错误后,我决定在提交方法中进行手动验证。我还没有找到一种方法来让Validator对象成功地工作

您可以尝试使用侦听器(不确定如果约束失败事件是否有取消方法调用,但您可以检查):

public void listener(UploadEvent event) throws IOException {
    UploadItem item = event.getUploadItem();
    String name = "unnamed_attachment";
    byte[] data = item.getData();
    if (item.isFile()) {
        name = FilenameUtils.getName(item.getFileName());
        data = FileUtils.readFileToByteArray( item.getFile() );
    }
    debug("file uploaded '#0' : '#1'", name, item.getFileName());

一些约束可以放在components.xml中,比如:

<web:multipart-filter create-temp-files="false" max-request-size="5200000" url-pattern="/*"/>

相关内容

  • 没有找到相关文章

最新更新