Почему $ file пуст в пользовательском валидаторе symfony? - PullRequest
0 голосов
/ 21 декабря 2010

Я устанавливаю пользовательский валидатор файлов для поля ввода файлов в Symfony 1.4 (Doctrine)

$this->setValidator('filename', new sfValidatorFile(array(

'mime_types' => 'web_images',
'path' => sfConfig::get('sf_upload_dir').'/animals',
'validated_file_class' => 'CustomValidatedFile',
'required' =>false
))); 

Затем я хочу переопределить метод сохранения, чтобы создать несколько миниатюр:

class CustomValidatedFile extends sfValidatedFile {

private $savedFilename;

// Override sfValidatedFile's save method
  public function save($file = null, $fileMode = 0666, $create = true, $dirMode = 0777)                 {

$this->savedFilename = $this->generateFilename();
// This makes sure we use only one savedFilename (it will be the first)
if ($this->savedFilename === null ) {

$this->savedFilename = $file;
}

$thumbnail = new sfThumbnail(150,150);
$thumbnail->loadFile($this->getTempName());
$thumbnail->save(sfConfig::get('sf_upload_dir').'/thumbnails/thumb_'.$this->savedFilename);
// Let the original save method do its magic :)

return parent::save($this->savedFilename, $fileMode, $create, $dirMode);
  }
  }

Сбой из-за ошибки «Файл» «не читается».Это происходит из sfThumbnailPlugin, потому что значение $ file равно нулю.

Мой вопрос: почему $ file null?

1 Ответ

0 голосов
/ 14 января 2011

Я думаю, это потому, что $ file еще не существует - на данном этапе существует только временный файл, к которому можно получить доступ через $ this-> getTempName ()

...