2017-10-17 4 views
0

Ich benutze codeigniter, ich möchte Elfinder Upload-Pfad dynamisch für jede ID zu machen. meine Ordnerhierarchie ist wie folgt:elfinder Einstellung dynamischer Upload-Pfad

client code is dynamic

meine elfinder entscheidet sich:

$idce = $_GET['id_c']; 

    $client_code = $this->db->select('client_code') 
         ->get_where('tb_clients', array('id_c' => $idce)) 
         ->row() 
         ->client_code; 
    $tval = $this->db->select('tanggal_valuasi') 
         ->get_where('tb_clients', array('id_c' => $idce)) 
         ->row() 
         ->tanggal_valuasi; 

    $opts = array(


    // 'debug' => true, 

    'roots' => array(
     array(
     'driver' => 'LocalFileSystem', 
     'path' => './upload/'.$client_code.'./proposal/', 
     'startPath' =>'./storage/'.$client_code.'./proposal/', 
     'URL' => site_url('storage').'/'.$client_code.'/'.'proposal/', 
     'attributes' => array(
      array(// hide readmes 
      'pattern' => '/.quarantine'.'/', 

      // 'read' => false, 
      // 'write' => false, 

      'hidden' => true, 

      // 'locked' => false 

     ) , 
      array(// restrict access to png files 
      'pattern' => '/.tmb'.'/', 

      // 'read' => false, 
      // 'write' => false, 

      'hidden' => true, 

      // 'locked' => false 

     ) 
     ) , 
     'uploadDeny' => array(
      'text/php', 
      'text/x-php', 
      'application/php', 
      'application/x-php', 
      'application/x-httpd-php', 
      'application/x-httpd-php-source', 
      'text/html', 
      'text/css', 
      'text/js', 
      'application/js', 
      'application/x-javascript', 
      'application/javascript', 
      'application/ecmascript', 
      'text/javascript', 
      'text/ecmascript', 
      'application/octet-stream' 
     ) , 
     'disabled' => array(
      'rename' 
     ) , 
    ) 
    ) 
); 
    $this->load->library('elfinder_lib', $opts); 
} 

dies ist mein Javascript Aufruf elfinder:

<script src="<?php echo base_url('asset/elfinder/js/elfinder.full.js');?>"> 
</script> 

<!-- elFinder initialization (REQUIRED) --> 
    <script type="text/javascript" charset="utf-8"> 
    $().ready(function() { 
     var elf = $('#elfinder').elfinder({ 
      customData : {'id_c': document.getElementById('id_c').value}, 
      defaultView : 'list', 
      url : '<?= base_url(); ?>admin/proposal_contract/elfinder_init', 
    `enter code here`// connector URL (REQUIRED) 
      uiOptions: { 
       toolbar : [ 
        // toolbar configuration 
        ['back', 'forward'], 
        ['reload'], 
        ['home', 'up'], 
        ['upload'], 
        ['open'], 
        ['info'], 
        ['copy', 'cut', 'paste'], 

       ] 
      } 
     }).elfinder('instance'); 
    }); 
    </script> 

das Ergebnis ist elfinder den richtigen Ordner zeigt Ich möchte, was unter "(client_code)/Vorschlag" Ordner ist, aber wenn ich versuche, Datei hochzuladen, wird die hochgeladene Datei nicht angezeigt im 'Vorschlag' Ordner. erscheint stattdessen im Stammordner 'mysite/proposal'. so scheint es elfinder kann nicht lesen meine dynamische variable zu sein

Antwort

0

ok, endlich kann ich das gerade .. stellt sich heraus, dass ich nur 'requestType: POST' hinzufügen, so kann Elfinder die benutzerdefinierten Daten erkennen.

<!-- elFinder initialization (REQUIRED) --> 
<script type="text/javascript" charset="utf-8"> 
$().ready(function() { 
    var elf = $('#elfinder').elfinder({ 
     customData : {'id_c': document.getElementById('id_c').value}, 
     defaultView : 'list', 
     requestType : post, 
     url : '<?= base_url(); ?>admin/proposal_contract/elfinder_init', 
`enter code here`// connector URL (REQUIRED) 
     uiOptions: { 
      toolbar : [ 
       // toolbar configuration 
       ['back', 'forward'], 
       ['reload'], 
       ['home', 'up'], 
       ['upload'], 
       ['open'], 
       ['info'], 
       ['copy', 'cut', 'paste'], 

      ] 
     } 
    }).elfinder('instance'); 
}); 

Der Typ AJAX Anfrage. Verfügbare Möglichkeiten sind Post und Get.