私は複数のファイルをアップロードする必要がある状況があります。 ブラウズボタンで複数の選択が可能になり、ファイルリストが表示されます。 次に、別のボタンが実際のアップロードを行います。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と(まだなぜところで不思議)すべてのファイルのためではなく、すべてのアップロードのoncomplite作業するので、キューのサイズを知るための方法、私は例外を取得する場合、それを空にするか、全体を停止することがありますJavaScriptを使用せずにプロセスをアップロードしますか?
これらの属性の問題は、N個以上のファイルを選択できなくなることです。私はまだ同じ問題を抱えて、n-1個のファイルが二度考えて選択することができます:( – pedro
@pedro、そしてちょうど静的な値にfileLimitを設定していない変数にバインドします。 'fileLimitは=「#{} myBean.sessionOrUserOrWhateverfileLimit」 'を追加すると、この制限が減少します。クライアントの制限を更新するためにアップロード後にp:fileUploadを更新します。' disabled = "#{myBean.sessionOrUserOrWhateverfileLimit == 0}"を追加することもできます。 –
これで問題は解決しませんユーザーが10個以上のファイルをアップロードしようとすると、既にアップロードされたファイルと残りのファイルの両方のキューをクリアする必要があります。 – pedro