2012-05-08 2 views
0

Я использую CakePHP 2.1.1 и Miles Johnson's Uploader Plugin v 3.5.
Он работает довольно мило, хотя я думаю, что у меня проблема при попытке выгрузить поведение FileValidation.unload() CakePHP Uploader Plugin не работает

У меня есть оба поведения Uploader.Attachment и Uploader.FileValidator (см. Нижнюю часть вопроса).
В ответ на вызов afterSave Теперь мне нужно сэкономить Post, чтобы добавить переведенное поле для другого языкового стандарта.

Когда я снова сохраняю, это, по-видимому, вызывает ошибку en в поведении FileValidation. Я получаю ошибку:
failed to open stream: No such file or directory [APP/Plugin/Uploader/Model/Behavior/FileValidationBehavior.php, line 296]
Как-то поведение снова ищет файл tmp.
Когда я не определяю поведение FileValidation, все идет хорошо. Поэтому я решил отключить поведение после того, как он выполнил свою работу во время регулярного save(), прямо перед тем, как отправиться на второй номер save().
В afterSave($created) поэтому я заявляю

$this->Behaviors->unload('FileValidation'); 
$this->save($data); 

ошибка исчезает, но я получаю 4 предупреждения в возвращении:

Warning (512): Could not find validation handler maxWidth for file [CORE/Cake/Model/Model.php, line 3155] 
Warning (512): Could not find validation handler maxHeight for file [CORE/Cake/Model/Model.php, line 3155] 
Warning (512): Could not find validation handler filesize for file [CORE/Cake/Model/Model.php, line 3155] 
Warning (512): Could not find validation handler required for file [CORE/Cake/Model/Model.php, line 3155] 

Я также пытался $this->Behaviors->disable('FileValidation'), но безрезультатно. Является ли это ошибкой в ​​Поведении (не правильно выгружая себя), или я неправильно обрабатываю выгрузку?

Уважение, Барт

Настройка поведения:

public $actsAs = array('Uploader.Attachment' => array(
     'file' => array(
      'name'  => 'uniqueFilename', // Name of the function to use to format filenames 
      'baseDir' => APP,   // See UploaderComponent::$baseDir 
      'uploadDir' => 'webroot/img/upload/',   // See UploaderComponent::$uploadDir 
      'dbColumn' => 'uploadPath', // The database column name to save the path to 
      'importFrom' => '',   // Path or URL to import file 
      'defaultPath' => '',   // Default file path if no upload present 
      'maxNameLength' => 30,   // Max file name length 
      'overwrite' => false,  // Overwrite file with same name if it exists 
      'stopSave' => true,  // Stop the model save() if upload fails 
      'transforms' => array(),  // What transformations to do on images: scale, resize, etc 
      's3'  => array(),  // Array of Amazon S3 settings 
      'metaColumns' => array(  // Mapping of meta data to database fields 
       'ext' => 'ext', 
       'type' => 'type', 
       'size' => 'size', 
       'group' => 'group', 
       'width' => 'width', 
       'height' => 'height', 
       'filesize' => 'size', 
       'name'=>'name' 
      ) 
     ) 
    ), 
    'Uploader.FileValidation' => array(
     'file' => array(
      'maxWidth' => array(
       'value' => 1000, 
       'error' => 'Image too wide. Max 1000px' 
      ), 
      'maxHeight' => array(
       'value' => 1000, 
       'error' => 'Image too high. Max 1000px' 
      ), 
      'extension' => array(
       'value' => array('gif', 'jpg', 'png', 'jpeg'), 
       'error' => 'Mimetype incorrect', 
      ), 
      'filesize' => array(
       'value' => 1048576, 
       'error' => 'Filesize too high. Max 1 MB' 
      ) 
     ) 
    ) 
); 

ответ

0

Не уверен, что это исправит ваше, но я нашел (по какой-то причине я не знаю почему) эта ошибка возникает, если у вас нет отладки, установленной в 0 в вашей конфигурации /core.php

Смежные вопросы