3

Primefaces のファイル アップロードでは、FileUpload コンポーネント自体がドロップ ゾーンです。たとえば、ユーザーが他の div またはテーブルにファイルをドロップした場合、Primefaces ファイル アップロード コンポーネントはそれを選択する必要があります。

primefaces アップロード コンポーネントのドロップ イベントを手動でトリガーしようとしましたが、これは機能しません。

これで私を助けてください。前もって感謝します!

これが私が試したものです、

$('.otherdropzone').on( 'dragover', function(e) { e.preventDefault(); } ); 

$('.otherdropzone').on( 'dragenter', function(e) { e.preventDefault(); } );

$(".otherdropzone").on('drop', function(e){ 

    e.preventDefault();
    $(".fileupload-content").trigger('drop',e); // Primefaces dropzone cssclass
}); 

.files や .ui-fileupload などの Primefaces のトリガーおよびドロップ ゾーン クラスの引数を変更することによる、他の同様のこと

4

2 に答える 2

3

トリックは、Primefaces がFileupload以下のプラグインに基づいて機能を開発したことです。

https://github.com/blueimp/jQuery-File-Upload/wiki/API

idのように<p:fileUpload/>タグを付けるだけです

<p:fileUpload id="advancedupload" widgetVar="advupload"
              fileUploadListener="#{fileUploadController.handleFileUpload}"
              mode="advanced" dragDropSupport="true" multiple="true"
              update="messages" sizeLimit="10000000" fileLimit="2"
              allowTypes="/(\.|\/)(gif|jpe?g|png|pdf)$/" />

これに基づいて、次のようにレンダリングされHTML5 File Upload component in the browserます。

だから、scriptなる

  $(window).load(function(){
        $('#advancedupload').fileupload({
            dropZone: $(document)
         });
     });  

$(window).load()それ以外の場合は、DOM に見つからないコンポーネントについて不平を言う必要があります。それはトリックを行います。

于 2013-11-05T18:44:51.060 に答える