我想在上传过程中调整不同的图片大小,而不是200x100。但是,我找不到任何相关文件来进行此调整。
经过一些搜索,我看到有多个人告诉其他人查看 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;
}
我的大问题是:
我在哪里放置此功能?我正在使用Symfony2的(FM)ElfinderBundle。
答案 0 :(得分:0)
有两种方法可以解决这个问题。
将您的函数(myResize)放在connector.php中:
public function myResze($cmd, $result, $args, $elfinder) { //other code }
然后设置' bind'致:
'bind' => array(
'upload resize' => 'myResize');
class className { // other code public function myResize($cmd, $result, $args, $elfinder) { // other code } }
从此类创建对象后:
$obj = new className();
然后设置' bind'对此:
'bind' => array(
'upload resize' => array($obj, 'myResize'));