Я хочу изменить размер изображения во время загрузки, вместо 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.
Есть два способа решения этого вопроса.
Поместите вашу функцию (myResize) в connector.php:
публичная функция myResze ($ cmd, $ result, $ args, $ elfinder) { // другой код }
затем установите ‘bind’ в:
'bind' => array(
'upload resize' => 'myResize');
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
Других решений пока нет …