2016-05-18 8 views
5

sto lavorando su file manager utilizzando jQueryCome ottenere l'evento upload prima presso il plugin elfinder (un file manager plugin)

ecco il codice:

var elfinder = $('#elfinder').elfinder({ 
      url: '<?= $connector; ?>', 
      soundPath: '<?= site_url('assets/plugins/elFinder/sounds/rm.wav'); ?>', 
      height: 700, 
      lang: 'zh_TW', 
      uiOptions: { 
       // toolbar configuration 
       toolbar: [ 
        ['back', 'forward'], 
        ['reload'], 
        ['mkdir', 'upload'], 
        ['copy', 'cut', 'paste', 'rm'], 
        ['rename'], 
        ['view', 'sort'] 
       ] 
      }, 
      contextmenu: { 
       navbar: ['open', '|', 'copy', 'cut', 'paste', 'duplicate', '|', 'rm', '|', 'info'], 
       cwd: ['reload', 'back', '|', 'upload', 'mkdir', 'paste', '|', 'info'], 
       files: [ 
        'open', 'quicklook', 'sharefolder', '|', 'download', '|', 'copy', 'cut', 'paste', 'rm', '|', 'rename', '|', 'info' 
       ] 
      }, 
      ui: ['toolbar', 'tree', 'stat'], 
      handlers: { 
       add: function (e) { 
       }, 
       upload: function (e, instance) { 
        alert("test1"); 
        //alert("test2"); 
        //return false; 
        //console.log(event.data); 
        //console.log(event.data.selected); // selected files hashes list 
       } 
      } 
     }); 

Il problema sono,

1) mi piacerebbe avere un po 'di controllo prima di caricare file, se non riuscire quindi annullare il caricamento, ma in entrambi i aggiungere/evento di upload è il fuoco dopo l'avvio caricare e sparare più volte

2) Inoltre, non può catturare l'evento complete sul caricamento come caricare evento fuoco più volte

Ecco l'elenco degli eventi:

https://github.com/Studio-42/elFinder/wiki/Client-event-API

Qualsiasi suggerimento, grazie mille per l'aiuto.

Aggiornato:

Trova in lato server, non v'è una possibilità legano, per ignorare il comando di esempio "rm mkdir" ecc ... tuttavia, mi piacerebbe ottenere l'id utente quando lo store, quindi ci sono un elenco di eventi che posso sovrascrivere in client? Grazie

https://github.com/Studio-42/elFinder/wiki/Connector-configuration-options

risposta

2

favore ignorare la funzione perché non v'è alcun punto di aggancio prima dell'esecuzione comando.

var elfinderInstance = $('#elfinder').elfinder({ /* Your options */ }).elfinder('instance'); 

elfinderInstance.upload = function(files) { 
    var hasError; 
    elfinderInstance.log(files); // print to browser consol 
    if (hasError) { 
     elfinderInstance.error('upload error'); 
     return $.Deferred().reject(); 
    } else { 
     return elfinderInstance.transport.upload(files, elfinderInstance); 
    } 
}; 
+0

codice di esempio davvero ottimo. Ultima domanda, c'è una lista di eventi che possono scavalcare? dato che potrei aver bisogno di chiamare qualche comando php per loggare il file ogni volta, copiare, cancellare, spostare, creare una cartella ecc ... grazie – user782104

+0

mi dispiace ti spiace brevemente spiegare quali sono i file oggetto? come scorrere l'elenco per ottenere il nome dell'elemento del file, la dimensione del file .. etc ... grazie mille – user782104