[英]Why is $file empty in custom symfony file validator?
我正在为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
)));
然后,我想覆盖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);
}
}
这将失败,并显示错误“文件“”不可读”。 这来自sfThumbnailPlugin,因为$ file的值为空。
我的问题是为什么$ file为null?
我认为这是因为$ file还不存在-在此阶段仅存在一个临时文件,可以通过$ this-> getTempName()进行访问
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.