Изменение размера загруженных изображений elFinder

Я хочу изменить размер изображения во время загрузки, вместо 200×100. Тем не менее, я не могу найти какие-либо связанные файлы, чтобы сделать эту настройку.

После некоторых поисков я видел, как несколько человек рассказывают другим connector.php. В этом файле мне нужно передать следующее:

$opts = array(
'bind' => array(
'upload resize' => array($this, 'myResize')
),
'roots' => array(
array(...)
)
);

/**
* Upload/resize callback catcher, resizes image to 320x240px/240x320px respectively, keeps ratio
*
* @param  string   $cmd       command name
* @param  array    $result    command result
* @param  array    $args      command arguments from client
* @param  object   $elfinder  elFinder instance
* @return true     Forces elFinder to sync all events
* */
public function myResize($cmd, $result, $args, $elfinder) {
$files = $result['added'];
foreach ($files as $file) {
$arg = array(
'target' => $file['hash'],
'width' => 320,
'height' => 320,
'x' => 0,
'y' => 0,
'mode' => 'propresize',
'degree' => 0
);
$elfinder->exec('resize', $arg);
}

return true;
}

Мой большой вопрос:

Где я могу разместить эту функцию? Я использую (FM) ElfinderBundle для Symfony2.

0

Решение

Есть два способа решения этого вопроса.

  1. Поместите вашу функцию (myResize) в connector.php:

    публичная функция myResze ($ cmd, $ result, $ args, $ elfinder)
    {
    // другой код
    }
    

затем установите ‘bind’ в:

'bind' => array(
'upload resize' => 'myResize');
  1. определите свой класс в файле connector.php и получите экземпляр для использования в ‘bind’. пример :
class className
{
// другой код

публичная функция myResize ($ cmd, $ result, $ args, $ elfinder)
{
// другой код
}
}

после создания объекта из этого класса:

$obj = new className();

затем установите «привязать» к этому:

'bind' => array(
'upload resize' => array($obj, 'myResize'));

этот пример полезен для вас: https://github.com/Studio-42/elFinder/wiki/Logging

0

Другие решения

Других решений пока нет …