我有一个带有sfWidgetFormInputFile字段的表单。 我正在上传图片,上传后,我想对刚刚上传的文件进行一些处理。
我知道我可以使用validated_file_class。我正在我的自定义类中覆盖save()方法,并且文件被正确保存但数据库中的存储不起作用,它只是为文件名字段发送空值。我错过了什么吗?
以下是相关代码:
class MyForm extends BaseMyForm
{
public function configure()
{
$this->widgetSchema['image'] = new sfWidgetFormInputFile();
$this->validatorSchema['image'] = new sfValidatorFile(array(
'required' => true,
'path' => sfConfig('sf_upload_dir'),
'mime_types' => 'web_images',
'validated_file_class' => 'MyCustomValidatedFile'
));
}
}
class MyCustomValidatedFile extends sfValidatedFile
{
public function save($file = null, $fileMode = 0666, $create = true, $dirMode = 0777)
{
parent::save($file, $fileMode, $create, $dirMode);
}
}
答案 0 :(得分:0)
好的,我明白了......
我只是缺少save()方法的return语句......它应该返回刚刚保存的文件名而不带路径前缀。
$fn = parent::save($file, $fileMode, $create, $dirMode);
//processing
return $fn;