symfony 1.4进程文件在表单上传后,不会向DB发送数据,但会将文件保存在磁盘中

时间:2011-02-18 23:17:52

标签: symfony1 symfony-1.4 symfony-forms

我有一个带有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);
  }
}

1 个答案:

答案 0 :(得分:0)

好的,我明白了......

我只是缺少save()方法的return语句......它应该返回刚刚保存的文件名而不带路径前缀。

$fn = parent::save($file, $fileMode, $create, $dirMode);
//processing
return $fn;