1

私は Primefaces 3.5 を使用していますが、かなり厄介な問題に遭遇しました。コンポーネントは xhtml で次のようになります。

<p:tab id="installApp" title="Install application">
        <h:form enctype="multipart/form-data">
        <p:panel header="Upload status" id="upld_status">
          <p:dataTable id="errorTable" var="error"
           value="#{applicationInstallerBean.uploadMsgs}">

           <p:column headerText="Application">
            <h:outputText value="#{error.filename}" />
           </p:column>

           <p:column headerText="Status">
            <h:outputText value="#{error.errorMsg}" />
           </p:column>

          </p:dataTable>        
        </p:panel>

        <p:remoteCommand name="clearPrevious" update="upld_status uploader" action="#{applicationInstallerBean.clearPrevious}" process="@this" />


        <p:fileUpload id="uploader" multiple="true" dragDropSupport="true" onstart="clearPrevious()"
                fileUploadListener="#{applicationInstallerBean.install}" uploadLabel="Install"
                mode="advanced" update="@this upld_status" auto="false"
                allowTypes="/(\.|\/)(zip)$/" styleClass="install_app_fileupload" />                 

        </h:form>
        <p:panel header="Help" toggleable="true">
            <ui:include src="applicationInstallHelp.xhtml" />
        </p:panel>
    </p:tab>

今、私が経験している動作はかなり奇妙です:

最初の数回は、ドラッグ アンド ドロップ方式でファイルをアップロードしても問題なく動作します。数回アップロードした後、次のエラーは完全に不確定に見えます。

  • [アップロード] ボタンを押すと FileUpload コンポーネントが消え、ページを更新したときにのみ再表示される
  • アップロード中にonstartメソッドが何度も呼び出される
  • 複数のファイルがアップロードされている場合、アップロードのステータスを含むテーブルが更新されないか、1 つのファイルしか表示されない
  • また、ブラウザから、このページでスクリプトが実行されているというメッセージが表示され、中止または続行できます

私が試したこと:

h:form要素を削除します。これは、既にh:form要素が含まれているインデックス ファイルに含まれているためです。

結果:基本的に同じですが、コンポーネントに初めてファイルをドロップすると自動的にアップロードされますが、autoは false に設定されます。

また、ブラウザのキャッシュを空にしたり、アプリケーションを最初から再デプロイしたり、複数の電源をオフにしたりしましたが、すべてうまくいきませんでした。

私がアップロードしているファイルは 80k から 9mb です。

このことから、あまりにも多くのファイルをアップロードすると全体が狂ってしまうように見えますが、解決策は本当に思いつきません。どんな助けでも大歓迎です。

更新:テスト中に、最初のアップロード後にonstartメソッドが常に複数回起動することがわかりました。初めて1回だけ発射します。2 回目のアップロードでは約 7 ~ 10 回、3 回目ではセッションを終了するまで起動し続けるようです。これはかなり奇妙で、問題の根源である可能性があると思います。これに関するアイデアはありますか?

前もって感謝します!

4

0 に答える 0