2016-12-08 2 views
1

Мы перемещаем много больших файлов, и эта работа безупречно, потому что это делается в экземпляре без копирования файла. (просто перемещение указателя)elfinder - скопировать жесткие ссылки

Но иногда нам нужно получить доступ к одному файлу из нескольких мест в файловой системе, сегодня мы копируем файл, но это занимает очень много времени и занимает много времени, это необходимо, так как файл копируется в другое место на диске. Поэтому мы не можем жаловаться на это :)

Но в нашем рабочем процессе нам фактически не нужно иметь несколько файлов, достаточно нескольких указателей на один и тот же файл. Поэтому модель hardlink - отличный выбор для нас. Это было бы чрезвычайно полезно, если бы можно было изменить поведение функции копирования в elfinder. Кто-нибудь знает, если это возможно. ? :)

ответ

0

Это стало возможным благодаря расширению класса elFinderVolumeLocalFileSystem.

class elFinderVolumeMyLocalFileSystem extends elFinderVolumeLocalFileSystem 
{ 
    protected function _copy($source, $targetDir, $name) { 
     $target = $this->_joinPath($targetDir, $name); 
     if (! $ret = link($source, $target)) { 
      return parent::_copy($source, $targetDir, $name); 
     } 
     return $ret; 
    } 
} 

$opts = array(
    'locale' => '', 
    'roots' => array(
     array(
      'driver' => 'MyLocalFileSystem', 
      'path' => '/path/to/files/', 
      'URL' => 'http://localhost/to/files/' 
     ) 
    ) 
); 

// run elFinder 
$connector = new elFinderConnector(new elFinder($opts)); 
$connector->run(); 
Смежные вопросы