Php 为什么自定义symfony文件验证程序中的$file为空?

Php 为什么自定义symfony文件验证程序中的$file为空?,php,symfony1,symfony-1.4,Php,Symfony1,Symfony 1.4,我正在为Symfony 1.4中的文件输入字段设置自定义文件验证程序 $this->setValidator('filename', new sfValidatorFile(array( 'mime_types' => 'web_images', 'path' => sfConfig::get('sf_upload_dir').'/animals', 'validated_file_class' => 'CustomValidatedFile', 'required'

我正在为Symfony 1.4中的文件输入字段设置自定义文件验证程序

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

'mime_types' => 'web_images',
'path' => sfConfig::get('sf_upload_dir').'/animals',
'validated_file_class' => 'CustomValidatedFile',
'required' =>false
))); 
然后,我想覆盖save方法以生成一些缩略图:

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);
  }
  }
此操作失败,错误为文件不可读。这是因为$file的值为null,所以来自于sftnailplugin


我的问题是为什么$file是空的?

我认为这是因为$file还不存在-在这个阶段只有一个临时文件存在,可以通过$this->getTempName访问它

我认为这是因为$file还不存在-在这个阶段只有一个临时文件存在,可以通过$this->getTempName访问,$file实际上只是一个文件名,不是保存的文件。我重新标记了你的问题,以提高被正确的人注意到的机会。回滚是毫无意义的,而且会适得其反。我以为我是在回滚代码编辑,这些编辑使代码出现在代码块之外。我没有注意到您添加了标签