file-upload - 如何使用 <p :fileUpload> 限制允许上传的文件数量

标签 file-upload jsf-2 primefaces

如何限制在 JSF 2 + primefaces 应用程序中允许上传的文件数量。 primeface 3.3 中有属性“filelimit”,但我使用的是 primefaces 3.4

最佳答案

看起来 fileLimit 选项已在问题 3618 中删除

正如评论中提到的,在支持 bean 中使用计数器并丢弃额外文件或添加 FacesMessage 以通知用户已达到最大 fileLimit。

代码示例:

@ManagedBean
@ViewScoped
public class FileUploadController {

    private final static int MAX_NUM_FILES = 3;
    private List<UploadedFile> uploadedFiles;
    private int counter = 0;

    @PostConstruct
    public void init() {
        uploadedFiles = new ArrayList<UploadedFile>();
    }


    public void handleFileUpload(FileUploadEvent event) {
        if (counter < MAX_NUM_FILES) {
            uploadedFiles.add(event.getFile());
            FacesMessage msg = new FacesMessage("Succesful", event.getFile().getFileName() + " is uploaded.");
            FacesContext.getCurrentInstance().addMessage(null, msg);
            counter ++;       
        }
        else {
            FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, "File Upload Limit Reached ", event.getFile().getFileName() + " is not uploaded.");
            FacesContext.getCurrentInstance().addMessage(null, msg);
        }

    }
}

关于file-upload - 如何使用 <p :fileUpload> 限制允许上传的文件数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12655532/

相关文章:

file-upload - 从 &lt;input type ="file"> 上传文件

java - 为什么 validator 没有被调用?

java - 重新部署后使用 JSF 2 防止 ViewExpiredException

JSF 2 本地化(托管 bean)

java - Primefaces 数据表部分页面渲染不适用于 <p :fileUpload>

jsf-2 - Primefaces 4.0 p :selectOneMenu valueChangeListener

php - 在用 PHP 上传时验证 pdf 文件的 mime 类型

python - 使用 python-oauth2 进行文件上传

android - 如何在android中拆分InputStream/OutPutStream

jsf - 如何通过从 jsf2.0 和 primefaces 2.2 的下拉菜单中选择值来显示隐藏数据表