在Cakephp 2.1.1中集成MeioUpload行为

时间:2012-04-12 19:12:23

标签: cakephp cakephp-2.1 meio-upload

我正在使用https://github.com/jrbasso/MeioUpload

中的MeioUpload 4.0行为插件

我通过git安装了插件:git clone git://github.com/jrbasso/MeioUpload.git插件/ MeioUpload 现在,我的目录结构如下:

/app
 /Plugin
  /MeioUpload
   /Model
    /Behavior
     /MeioUploadBehavior.php
   /Locale
   /Test

我的图片模型如下:

 <?php
 App::uses('AppModel', 'Model');
 class Picture extends AppModel {
$actsAs = array(
    'MeioUpload.MeioUpload' => array(
        'picture' => array(
            'dir' => 'img{DS}pictures',
            'create_directory' => true,
            'allowed_mime' => array('image/jpeg', 'image/pjpeg', 'image/png'),
            'allowed_ext' => array('.jpg', '.jpeg', '.png'),
            'zoomCrop' => true,             
            'thumbsizes' => array(
                'small'  => array('width'=>165, 'height'=>115),
                'medium' => array('width'=>800, 'height'=>600)

            ),
            'default' => 'default.jpg'
        )
    )
);
 }
 ?>

当我尝试访问/ pictures / add时,我在debug.log中收到以下错误:

 2012-04-12 21:42:38 Error: [MissingPluginException] Plugin MeioUpload could not be found.
#0 C:\wamp\www\starter211\lib\Cake\Core\App.php(364): CakePlugin::path('MeioUpload')
#1 C:\wamp\www\starter211\lib\Cake\Core\App.php(225): App::pluginPath('MeioUpload')
#2 C:\wamp\www\starter211\lib\Cake\Core\App.php(542): App::path('Model/Behavior', 'MeioUpload')
#3 [internal function]: App::load('MeioUploadBehav...')
#4 [internal function]: spl_autoload_call('MeioUploadBehav...')
#5 C:\wamp\www\starter211\lib\Cake\Model\BehaviorCollection.php(121): class_exists('MeioUploadBehav...')
#6 C:\wamp\www\starter211\lib\Cake\Model\BehaviorCollection.php(68): BehaviorCollection->load('MeioUpload.Meio...', Array)
#7 C:\wamp\www\starter211\lib\Cake\Model\Model.php(725): BehaviorCollection->init('Picture', Array)
#8 [internal function]: Model->__construct(Array)
#9 C:\wamp\www\starter211\lib\Cake\Utility\ClassRegistry.php(156): ReflectionClass->newInstance(Array)
#10 C:\wamp\www\starter211\lib\Cake\View\Helper\FormHelper.php(145): ClassRegistry::init(Array)
#11 C:\wamp\www\starter211\lib\Cake\View\Helper\FormHelper.php(331): FormHelper->_getModel('Picture')
#12 C:\wamp\www\starter211\app\View\Pictures\add.ctp(2): FormHelper->create('Picture', Array)
#13 C:\wamp\www\starter211\lib\Cake\View\View.php(908): include('C:\wamp\www\sta...')
#14 C:\wamp\www\starter211\lib\Cake\View\View.php(872): View->_evaluate('C:\wamp\www\sta...', Array)
#15 C:\wamp\www\starter211\lib\Cake\View\View.php(463): View->_render('C:\wamp\www\sta...')
#16 C:\wamp\www\starter211\lib\Cake\Controller\Controller.php(959): View->render(NULL, NULL)
#17 C:\wamp\www\starter211\lib\Cake\Routing\Dispatcher.php(110): Controller->render()
#18 C:\wamp\www\starter211\lib\Cake\Routing\Dispatcher.php(85): Dispatcher->_invoke(Object(PicturesController), Object(CakeRequest), Object(CakeResponse))
#19 C:\wamp\www\starter211\app\webroot\index.php(96): Dispatcher->dispatch(Object(CakeRequest), Object(CakeResponse))
#20 {main}

3 个答案:

答案 0 :(得分:0)

我有同样的问题。要解决我这样做了:

  • 将MeioUploadBehavior.php移至/ app / Model / Behavior文件夹(即将其从其子文件夹中删除)
  • 加载没有点表示法的行为。

    $actsAs = array(
      'MeioUpload' => array(...options here...)
    );
    

不确定为什么在子文件夹中使用它会为此版本的CakePHP抛出缺少的插件异常,但如果你想要一个临时修复,就是这样!

答案 1 :(得分:0)

你把这条线放在引导程序中了吗?

CakePlugin::loadAll();

答案 2 :(得分:0)

首先你克隆它时需要将文件夹重命名为MeioUpload它有ckaephp-MeioUpload clear和onli put

  

MeioUpload

in

  

yourapp /应用/配置/ boostrap.php

添加此

  

CakePlugin ::负载( 'MeioUpload');

以及所有有效的工作:)