调整上传的elFinder图像的大小

时间:2014-10-20 07:15:26

标签: php symfony elfinder

我想在上传过程中调整不同的图片大小,而不是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。

1 个答案:

答案 0 :(得分:0)

有两种方法可以解决这个问题。

  1. 将您的函数(myResize)放在connector.php中:

    public function myResze($cmd, $result, $args, $elfinder)
    {
      //other code
    }
    
  2. 然后设置' bind'致:

    'bind' => array(
        'upload resize' => 'myResize');
    
    1. 在connector.php中定义您的类,并获取在' bind'中使用的实例。例如:
    2.     class className
          {
             // other code
      
             public function myResize($cmd, $result, $args, $elfinder)
             {
               // other code
             }
          }
      

      从此类创建对象后:

      $obj = new className();
      

      然后设置' bind'对此:

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

      此示例对您有用:https://github.com/Studio-42/elFinder/wiki/Logging