2010-12-21 17 views
0

我設置了一個文件輸入字段的自定義文件驗證器在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 
))); 

那麼我想重寫保存方法生成一些縮略圖:

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); 
    } 
    } 

這種失敗錯誤「The file」「不可讀」。這是來自sfThumbnailPlugin,因爲$ file的值爲空。

我的問題是爲什麼$文件爲空?

+0

我認爲它是因爲$文件還不存在 - 在這個階段只有一個臨時文件存在,可以通過$ this-> getTempName() – codecowboy 2010-12-21 17:17:07

回答

0

我認爲它是因爲$文件還不存在 - 只有一個臨時文件存在在這個階段,可以通過$這個 - 訪問> getTempName()

相關問題