2017-08-16 17 views
1

私は複数のファイルをアップロードする必要がある状況があります。 ブラウズボタンで複数の選択が可能になり、ファイルリストが表示されます。 次に、別のボタンが実際のアップロードを行います。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を使用せずにプロセスをアップロードしますか?

答えて

0

PrimeFaces 6.1ユーザガイドは、pの次の属性を言及:ファイルアップロード:ユーザが「アップロード」打つ前に、ユーザは、fileLimit以上のファイルを選択したときに

fileLimit   null Integer Maximum number of files allowed to upload. 
fileLimitMessage null String Message to display when file limit exceeds. 

はfileLimitMessageが示されます。

さらにグローバルな制限が必要な場合は、セッションごとに、そしてあなたのBeanにプロパティにfileLimit属性をバインドします。この制限に応じてfileUploadListenerの減少で、アップロードを受信すると

fileLimit="#{myBean.sessionFileLimit}" 

。アップロード後にp:fileUploadを更新して、クライアントの制限を更新します。制限に達すると、disabled="#{myBean.sessionFileLimit == 0}"を追加してfileUploadを完全に無効にすることもできます。

+0

これらの属性の問題は、N個以上のファイルを選択できなくなることです。私はまだ同じ問題を抱えて、n-1個のファイルが二度考えて選択することができます:( – pedro

+1

@pedro、そしてちょうど静的な値にfileLimitを設定していない変数にバインドします。 'fileLimitは=「#{} myBean.sessionOrUserOrWhateverfileLimit」 'を追加すると、この制限が減少します。クライアントの制限を更新するためにアップロード後にp:fileUploadを更新します。' disabled = "#{myBean.sessionOrUserOrWhateverfileLimit == 0}"を追加することもできます。 –

+0

これで問題は解決しませんユーザーが10個以上のファイルをアップロードしようとすると、既にアップロードされたファイルと残りのファイルの両方のキューをクリアする必要があります。 – pedro

関連する問題