2

我有一个带有 sfWidgetFormInputFile 字段的表单。我正在上传图片,上传后,我想对刚刚上传的文件做一些处理。

我知道我可以为此使用 valid_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);
  }
}
4

1 回答 1

0

好,我知道了...

我只是错过了 save() 方法的返回语句......它应该返回刚刚保存的文件的名称,没有路径前缀。

$fn = parent::save($file, $fileMode, $create, $dirMode);
//processing
return $fn;
于 2011-02-19T02:42:12.300 回答