3

JSF 2 + primefaces アプリケーションを使用して、アップロードできるファイルの数を制限する方法。属性「filelimit」はprimeface 3.3にありましたが、primefaces 3.4を使用しています

4

1 に答える 1

10

問題3618で fileLimit オプションが削除されたようです

コメントで述べたように、バッキング 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);
        }

    }
}
于 2012-09-30T06:20:50.360 に答える