Ich bin eine benutzerdefinierte Datei-Validator für eine Datei Eingabefeld in Symfony 1.4 (Lehre) wollen Einstellung
$this->setValidator('filename', new sfValidatorFile(array(
'mime_types' => 'web_images',
'path' => sfConfig::get('sf_upload_dir').'/animals',
'validated_file_class' => 'CustomValidatedFile',
'required' =>false
)));
ich dann die Save-Methode außer Kraft zu setzen einige Thumbnails zu generieren:
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);
}
}
Diese mit versagt Der Fehler "Die Datei" "ist nicht lesbar." Dies kommt von sfThumbnailPlugin, weil der Wert von $ file null ist.
Meine Frage ist warum ist $ file null?
Ich denke, seine weil $ file existiert noch nicht - Zu diesem Zeitpunkt existiert nur eine temporäre Datei, auf die über $ this-> getTempName() zugegriffen werden kann. – codecowboy
Und $ file ist eigentlich nur ein Dateiname, keine gespeicherte Datei. – codecowboy
Ich habe Ihre Frage erneut geschrieben, um die Chancen zu verbessern, dass die richtigen Leute bemerkt werden. Rollback ist sinnlos und kontraproduktiv. – skaffman