我有一種情況,我需要上傳多個文件。 瀏覽按鈕將允許多個選擇,然後它會顯示文件列表。 然後,另一個按鈕將執行實際上傳。PrimeFaces FileUpload隊列大小
我想只要用戶試圖上載超過10個文件中的錯誤消息。
問題是,當用戶選擇多於10個文件(不一定全部一次)時,我有一個彈出窗口,並且我清空文件列表,但是第10個文件中的每個文件都會重新添加到列表中。這不應該發生,因爲我希望列表在每次捕獲這個異常時都清空。
這是由於這樣的事實,我不能管理有一個隊列大小或將其清空,所以我永遠不會知道,如果一個文件是第一套或11日。
public void handleFileUpload(
FileUploadEvent e) {
e.getComponent().setTransient(false);
//stuffstuffstuff
try{
if(list.size()>=webApplicationConst.getMultipleUploadFileLimit())
throw new FrontEndException("File limit exceeded", log);
else
list.add(file);
}
catch(FrontEndException LimitExcedeed){
list.clear();
this.openWarningDialog(MessageConst.MESSAGE_WARNING_DIALOG_TITLE_LIMIT_EXCEDEED );
}
}
由於OnStart中,併爲每一個文件,而不是對每一個上傳(仍然不知道爲什麼BTW)oncomplite工作,有沒有辦法知道隊列的大小,清空它,當我得到的異常或停止整個上傳過程中不使用JavaScript?
這些屬性的問題是,它們只是阻止我選擇多於N個文件。我仍然可以選擇N-1文件兩次想過,有同樣的問題:( – pedro
@pedro,那麼不只是設置fileLimit到一個靜態值,將它綁定到一個變量:'fileLimit =「#{} myBean.sessionOrUserOrWhateverfileLimit」 。'當接收上傳此遞減額度更新。p:文件上傳上傳後更新客戶端上的限制甚至加上'禁用=「#{myBean.sessionOrUserOrWhateverfileLimit == 0}」' –
那將不能解決問題。當用戶試圖上傳超過10個文件時,我需要它清除已上傳文件和剩餘文件的隊列,清除實際上是一個功能,而不是一個解決方法。用戶可能會選擇11個文件,然後上傳10個文件,而不會知道任何錯誤 – pedro